> 文章列表 > SQL 中的collate Latin1_General_CS_AI是什么意思

SQL 中的collate Latin1_General_CS_AI是什么意思

SQL 中的collate Latin1_General_CS_AI是什么意思

collate Latin1_General_CS_AI

就是使用Latin1_General_CS_AI这种排序规则

Latin1_General_CS_AI是一个排序规则的名称,是众多排序规则中的一种。

----知识拓展.排序规则名称----

排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集:比如:

Chinese_PRC_CS_AI_WS

前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。

排序规则的后半部份即后缀 含义:

_BIN 二进制排序

_CI(CS) 是否区分大小写,CI不区分,CS区分

_AI(AS) 是否区分重音,AI不区分,AS区分 

_KI(KS) 是否区分假名类型,KI不区分,KS区分 

_WI(WS) 是否区分宽度 WI不区分,WS区分

----知识拓展.排序规则等级----

SQL Server中有4个级别的排序设置:

1.

服务器级排序规则:

默认排序规则是在 SQL Server 安装期间设置的,并且会成为系统数据库的默认排序规则。

2.

数据库级排序规则:

创建数据库时,可以使用 CREATE DATAbase 语句的 COLLATE 子句指定默认的数据库排序规则。如果未指定排序规则,则为该数据库分配 model 数据库的默认排序规则。model 数据库的排序规则与 SQL Server 实例的默认排序规则相同。

3.

列级排序规则:

创建表时,可以使用 CREATE TABLE 语句的 COLLATE 子句指定每个字符串列的排序规则。如果未指定排序规则,则为该列分配数据库的默认排序规则。

4.

表达式级排序规则:

表达式级排序规则在语句运行时设置,并且影响结果集的返回方式。这可以使 ORDER BY 排序结果特定于区域设置。使用如下的 COLLATE 子句可以实现表达式级排序规则:

SELECT name FROM customer ORDER BY name COLLATE Latin1_General_CS_AI