在SQL Server中展平国家字符

Gra*_*ith 1 sql t-sql sql-server string sql-server-2008

我有一个列包含带有国家字符的宠物名称.如何在一个条件下编写查询以匹配它们?

|PetName|

   ?in
   ?in
   ?in
   ?in
   ?in
   ?in
   ?in
   ?in
Run Code Online (Sandbox Code Playgroud)

像这里的FLATTEN功能一样:

...WHERE LOWER(FLATTEN(PetName)) = 'cin'
Run Code Online (Sandbox Code Playgroud)

试图将它投射到NVARCHAR, VARCHAR但它没有帮助.我想避免使用REPLACE每一个角色.

Mla*_*dic 6

这应该工作,因为西里尔文整理基础案例所有变音符号,如Đ,Ž,Ć,Č,Š等...

declare @t table(PetName nvarchar(100))
insert into @t
SELECT N'?in' union all 
SELECT N'?in' union all 
SELECT N'?in' union all 
SELECT N'?in' union all 
SELECT N'?in' union all 
SELECT N'?in' union all 
SELECT N'?in' union all 
SELECT N'?in'

SELECT  *
FROM    @t
WHERE   lower(PetName) = 'cin' COLLATE Cyrillic_General_CS_AI 
Run Code Online (Sandbox Code Playgroud)