SQL COLLATE - 排序规则 -介绍及用法 (区分大小写检索数据)
SQL COLLATE - 排序规则 -介绍及用法 (区分大小写检索数据)
1、collate 排序规则,介绍
collate 英文翻译:核对。
描述:定义数据库或表列的排序规则,或应用于字符串表达式时的排序规则强制转换操作。 排序规则名称既可以是 Windows 排序规则名称,也可以是 SQL 排序规则名称。 如果创建数据库期间未指定,则会为数据库分配 SQL Server 实例的默认排序规则。 如果创建表列期间未指定,则会为该列分配数据库的默认排序规则。
1 2 3 | COLLATE { <collation_name> | database_default } <collation_name> :: = { Windows_collation_name } | { SQL_collation_name } |
参数:
- collation_name //应用于表达式、列定义或数据库定义的排序规则的名称。 collation_name 只能是指定的 Windows_collation_name 或 SQL_collation_name。 collation_name 必须是文本值。 collation_name 不能用变量或表达式表示。
- Windows_collation_name //是 Windows 排序规则名称的排序规则名称。
- SQL_collation_name //是 SQL Server 排序规则名称的排序规则名称。
- database_default //使 COLLATE 子句继承当前数据库的排序规则。
注意:COLLATE 子句仅适用于 char、varchar、text、nchar、nvarchar 和 ntext 数据类型。
2、系统函数:fn_helpcollations() //用于检索 Windows 排序规则和 SQL Server 排序规则的所有有效排序规则名称的列表
1 2 3 4 | --滔Roy 2022.11.09 SELECT name , description FROM fn_helpcollations(); SELECT * FROM sys.fn_helpcollations() WHERE name LIKE 'SQL%' ; -- 列出您服务器支持的 SQL Server 排序规则 SELECT * FROM sys.fn_helpcollations() WHERE [ name ] NOT LIKE N 'SQL%' ; -- 列出SQL Server 实例支持的 Windows 排序规则 |
示例:
目前,一般不再用 SQL Server 排序规则,因为这些规则是在 SQL Server 支持的 Windows 排序规则之前开发的。 仍然支持 SQL Server 排序规则只是为了实现向后兼容性,不应将这些排序规则用于新开发工作。
3、Windows 排序规则
1 2 3 4 5 6 7 8 | <Windows_collation_name> :: = <CollationDesignator>_<ComparisonStyle> <ComparisonStyle> :: = { <CaseSensitivity>_<AccentSensitivity> [ _<KanatypeSensitive> ] [ _<WidthSensitive> ] [ _<VariationSelectorSensitive> ] } | { _UTF8 } | { _BIN | _BIN2 } |
参数:
- CollationDesignator //指定 Windows 排序规则使用的基本排序规则。 基本排序规则包括以下内容:CaseSensitivity //CI 指定不区分大小写,CS 指定区分大小写。
- 指定按字典排序时应用的排序和比较规则。 排序规则基于字母表或语言。
- 用于存储 varchar数据 的代码页。
- 一些示例如下:
- Latin1_General 或法语:都使用代码页 1252。
- 土耳其语:使用代码页 1254。
- 一些示例如下:
- AccentSensitivity //AI 指定不区分重音,AS 指定区分重音。
- KanatypeSensitive //省略此选项指定不区分假名类型,KS 指定区分假名类型。
- WidthSensitivity //省略此选项指定不区分全半角,WS 指定区分全半角。
- VariationSelectorSensitivity
- 适用对象:自 SQL Server 2017 (14.x) 起
- 省略此选项指定区分不区分选择器,VSS 指定区分区分选择器。
- UTF8BIN //指定使用向后兼容的二进制排序顺序。
- 适用对象:自 SQL Server 2019 (15.x) 起
- 指定用于符合条件的数据类型的 UTF-8 编码。 有关详细信息,请参阅 排序规则和 Unicode 支持。
- BIN2 //指定使用码位比较语义的二进制排序顺序。
4、区分大小写检索数据(使用 Chinese_PRC 中文语 排序规则)
1 2 | select * from 表 where 字段 collate Chinese_PRC_CS_AS= '**' select * from 表 where 字段 collate Chinese_PRC_CS_AS like '%**%' |
创建时间:2022.11.09 更新时间:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
2021-11-09 SQL 判断表、字段是否存在的方法(MSSQL Server、Oracle、MySQL、PostgreSql、SQLite)