Sqlserver按汉字⾸字母排序(sql语句)在sql server中可以直接通过SQL语句实现按汉字⾸字母排序,⽐如我们经常⽤到的"按姓名⾸字母排序"
中文字符unicode查询
--把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区分
区分⼤⼩写:如果想让⽐较将⼤写字母和⼩写字母视为不等,请选择该选项。
区分重⾳:如果想让⽐较将重⾳和⾮重⾳字母视为不等,请选择该选项。如果选择该选项,
⽐较还将重⾳不同的字母视为不等。
区分假名:如果想让⽐较将⽚假名和平假名⽇语⾳节视为不等,请选择该选项。
区分宽度:如果想让⽐较将半⾓字符和全⾓字符视为不等,请选择该选项。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。