sql server2005 表中存的是柬埔寨语 where条件怎么查询不到正确的记录

 更新时间:2020年6月17日 13:08  
在sqlserver中 根据MSDN官方解释 排序规则指定了表示每个字符的位模式。它还指定了用于排序和比较字符的规则。排序规则具有下面的特征: 区分语言,区分大小写,区分重音,区分假名

អ្នកគ្រប់គ្រងទូទៅ  是柬埔寨用的语言,叫高棉语

默认字段用nvarchar 可以存入并正常显示

但是查询的时候有问题

查出来的不准确,有多条含有高棉语的记录

SELECT * FROM [degre-hr-dev].[dbo].[sys_deps_language] 
where  dep_name COLLATE Khmer_100_CI_AI = N'អ្នកគ្រប់គ្រងទូទៅ'

百度之后谷歌


发现要加 COLLATE Khmer_100_CI_AI

就可以正常查找了


在sqlserver中 根据MSDN官方解释 排序规则指定了表示每个字符的位模式。它还指定了用于排序和比较字符的规则。排序规则具有下面的特征: 区分语言,区分大小写,区分重音,区分假名


看一下SqlServer中的截图:


collate的名字包括两部分,前部分是表示字符集,后部分定义如下:

还可以根据拼音,笔画来排序。

如何设置排序规则

可以在数据库(create database/alter database时指定),字段级别(create table/alter table时指定)使用Collate命令设置collate,字段级别优先级更高。