• 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,字段级别优先级更高。

  • 相关阅读:
    牛影传说【线段树+BFS序运用】
    动态规划 :传纸条
    CQYZ-OJ P1377 危险的组合
    使用 git 管理你的配置文件
    Exponential Distribution
    初尝 C++ 类设计
    Android刷机的一般步骤
    重装 Linux 记录
    Linux 折腾记录 (非正式)
    最大熵对应的概率分布
  • 原文地址:https://www.cnblogs.com/Code-life/p/6892144.html
Copyright © 2020-2023  润新知