简体   繁体   English

SQL中的特殊字符问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM