[英]Issue with special characters in SQL
I have a table as following 我有一张桌子如下
Create Table Test(Name NVARCHAR(100))
Insert Into Test(Name) values (N'ἀἁἃἄὠἀἁἃἄὠἀἁἃἄὠἀἁἃἄὠἀἁἃἄὠἀἁἃἄὠἀἁἃἄὠ1,')
Insert Into Test(Name) values (N'ἀἁἃἄὠἀἁἃἄ')
Insert Into Test(Name) values (N'Test')
Select * from ED.Test WHERE Name like N'ἀἁἃἄὠἀἁἃἄ'
This above Select query should return two results but now it is returning only one result. 上面的Select查询应该返回两个结果,但现在只返回一个结果。
This statement 这个说法
Select * from ED.Test WHERE Name like '%ἀἁἃἄὠἀἁἃἄ%'
not returning any result. 不返回任何结果。
Select * from ED.Test WHERE Name like N'%ἀἁἃἄὠἀἁἃἄ%'
returning all result. 返回所有结果。
What am I missing? 我想念什么?
For special languages characters you should use COLLATE . 对于特殊语言的字符,应使用COLLATE 。
Select * from Test
WHERE Name COLLATE Greek_100_CS_AS_KS_WS_SC like N'ἀἁἃἄὠἀἁἃἄ%'
Sql Fiddle Demo SQL小提琴演示
For your solution I used collation_name
Greek_100_CS_AS_KS_WS_SC
对于您的解决方案,我使用了
collation_name
Greek_100_CS_AS_KS_WS_SC
Below query returns all possible collation_name
下面的查询返回所有可能的
collation_name
SELECT *
FROM ::fn_helpcollations()
You can chose which collation_name
suits you. 您可以选择适合您的
collation_name
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.