Sql 中Collate用法
今天查询sqlite的时候需要不区分大小写,查了下文档,需要使用collate nocase.顺便学习下collate的用法。
collate在sql中是用来定义排序规则的。排序规则其实就是当比较两个字符串时,根据某种规则来确定哪个比较大,是否相等。各个数据库支持不同的排序规则。
sqlite有三种build in的排序规则:
| BINARY | 二进制比较,直接使用memcmp()比较 |
| NOCASE | 将26个大写字母转换为小写字母后进行与BINARY一样的比较 |
| RTRIM | 和BINARY一样,忽略结尾的空格 |
Sql server则比较复杂: 根据MSDN官方解释 排序规则指定了表示每个字符的位模式。它还指定了用于排序和比较字符的规则。
排序规则具有下面的特征: 区分语言,区分大小写,区分重音,区分假名
看一下SqlServer中的截图:

collate的名字包括两部分,前部分是表示字符集,后部分定义如下:
| _BIN | 指定使用向后兼容的二进制排序顺序。 |
| _BIN2 | 指定使用 SQL Server 2005 中引入的码位比较语义的二进制排序顺序。 |
| _Stroke | 按笔划排序 |
| _CI(CS) | 是否区分大小写,CI不区分,CS区分 |
| _AI(AS) | 是否区分重音,AI不区分,AS区分 |
| _KI(KS) | 是否区分假名类型,KI不区分,KS区分 |
| _WI(WS) | 是否区分全半角,WI不区分,WS区分 |
还可以根据拼音,笔画来排序。
如何设置排序规则
可以在数据库(create database/alter database时指定),字段级别(create table/alter table时指定)使用Collate命令设置collate,字段级别优先级更高。
Sql 中Collate用法的更多相关文章
- SQL 中ROLLUP 用法
SQL 中ROLLUP 用法 ROLLUP 运算符生成的结果集类似于 CUBE 运算符生成的结果集. 下面是 CUBE 和 ROLLUP 之间的具体区别: CUBE 生成的结果集显示了所选列中值的所有 ...
- sql 中 exists用法
SQL中EXISTS的用法 比如在Northwind数据库中有一个查询为SELECT c.CustomerId,CompanyName FROM Customers cWHERE EXISTS(S ...
- 数据库sql中distinct用法注意事项
在写sql中去重复等操作,需要用到distinct. 在使用distinct的时候要注意,尤其是在有行列转换的时候.要把sql运行出来看看是不是与你想要的结果一样. 通过自己试验,distinct有从 ...
- Sql中CHARINDEX用法
CHARINDEX作用 写SQL语句我们经常需要判断一个字符串中是否包含另一个字符串,但是SQL SERVER中并没有像C#提供了Contains函数,不过SQL SERVER中提供了一个叫CHAEI ...
- 详细的SQL中datediff用法
DATEDIFF 函数 [日期和时间] 功能返回两个日期之间的间隔. 语法DATEDIFF ( date-part, date-expression-1, date-expression-2 ) da ...
- SQL中ISNULL用法示例
ISNULLSQL查询示例SELECT ISNULL 使用指定的替换值替换 NULL. 语法 :ISNULL ( check_expression , replacement_val ...
- sql中table用法
for c in (select column_value from table(f_split(V_FileID, ','))) loop --若没有填写资格开始结束时间,则填入 select co ...
- SQL 中 HAVING 用法
现在 Student表有 如下数据 现需求如下: 查找每个老师的学生的平均年龄且平均年齿大于12 不使用 HAVING SELECT * FROM (SELECT TeacherID, AVG(Age ...
- SQL中的between and
"between xx and xx "在SQL中的用法 这个大家都很熟悉,但是当问到是否包含两端的值时,就有点儿不确定了.在W3School网站上,有这样的一段话: 参考:ht ...
随机推荐
- spark 写hbase
部分情况下: saveAsNewAPIHadoopDataset不能用 大坑, org.apache.hadoop.mapred 和 org.apache.hadoop.mapreduce两个包的混乱 ...
- Java编程时部分快捷键
alt + / 内容助理 配置:Window->properties->keys->查看alt + /的配置,然后解除当前的配置->搜索content assist->解 ...
- webstorm打开带有node_modules文件夹的工程时很卡
ctrl+alt+s打开settings 在webstorm中配置这个就可以不加载出来node_modules使页面加载快
- C语言中单引号和双引号
写惯了python对单引号和双引号都混了.. C语言中的单引号和双引号含义迥异,用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值,因此,采用ASCII字符集的 ...
- CSS3 网格布局(grid-layout)基础知识 - 网格模板属性(grid-template)使用说明
CSS3引入了新的网格布局(grid layout),以适应显示和设计技术的发展(尤其是移动设备优先的响应式设计). 主要目标是建立一个稳定可预料且语义正确的网页布局模式,用来替代过往表现不稳定且繁琐 ...
- python twisted教程[资料]
python twisted教程 一,异步编程 http://www.douban.com/note/232200511/ python twisted教程 二:缓慢的诗 http://www.d ...
- c#实现验证某个IP地址是否能ping通
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net ...
- FFT快速傅立叶变换
//最近突然发现博客园支持\(\rm\LaTeX\),非常高兴啊! 话说离省选只有不到五天了还在学新东西确实有点逗…… 切到正题,FFT还是非常神奇的一个东西,能够反直觉地把两个多项式相乘的时间复杂度 ...
- 【2018年全国多校算法寒假训练营练习比赛(第四场)- E】通知小弟(强连通缩点)
题目链接:https://www.nowcoder.com/acm/contest/76/E 题目描述 在战争时期,A国派出了许多间谍到其他国家去收集情报.因为间谍需要隐秘自己的身份, ...
- 内存保护机制及绕过方案——通过覆盖SEH异常处理函数绕过/GS机制
通过SEH链绕过GS保护机制 ⑴. 原理分析: i.异常处理结构(SEH)处理流程如下: SEH是基于线程的,每一个线程都有一个独立的SEH处理结果,在线程信息块中的第一个结构指向线程的异常列表,F ...