zoukankan      html  css  js  c++  java
  • 按汉字首字母排序(sql语句)

    在sql server中可以直接通过SQL语句实现按汉字首字母排序,比如我们经常用到的"按姓名首字母排序"

    --把tableName和colName换成自己的就ok了
    --按拼音

    ALTER TABLE tableName
    ALTER COLUMN colName nvarchar(100) COLLATE Chinese_PRC_CI_AS
    select *from tableName order by colName

    --按笔画
    ALTER TABLE tableName
    ALTER COLUMN colName nvarchar(100) COLLATE Chinese_PRC_Stroke_CI_AS
    select *from tableName order by colName


    说明:

    ALTER:修改表

    collate:是一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影。

    Chinese_PRC_CI_AS:一种SQL排序规则

    下面简单介绍一下排序规则:

    什么叫排序规则呢?MS是这样描述的: "在 SQL Server 中,

    字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存

    储和比较字符所使用的规则。

      在查询分析器内执行下面语句,可以得到SQL SERVER支持的所有排序规则。

        select * from ::fn_helpcollations() //sql server 有1011种排序规则

    排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。
    如:
      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区分


    区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。

    区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,
    比较还将重音不同的字母视为不等。

    区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。

    区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项。


    扩展阅读:C#获取汉字首字母

  • 相关阅读:
    changing a pointer rather than erasing memory cells
    验证码识别 edge enhancement 轮廓增强 region finding 区域查找
    Manipulating Data Structures
    passing parameters by value is inefficient when the parameters represent large blocks of data
    Aliasing 走样
    Artificial Intelligence Research Methodologies 人工智能研究方法
    Thread safety
    include pointers as a primitive data type
    flat file
    functional cohesion
  • 原文地址:https://www.cnblogs.com/liaojunbo/p/1354842.html
Copyright © 2011-2022 走看看