日期:2014-05-18  浏览次数:20580 次

按中文首个拼音字母排序的sql语句如何写??
如果数据表tbl的某字段name的字符编码是latin1_swedish_ci;

  select * from `tbl` order by birary(name) asc

  如果数据表tbl的某字段name的字符编码是utf8_general_ci;

  SELECT name FROM `tbl` WHERE 1

  ORDER BY CONVERT( name USING gbk ) COLLATE gbk_chinese_ci ASC
---------------------------------
--------------------------------
以上内容是我在网上找来的,可是我在查询分析器里运行时分别报错,请问怎么弄啊,我就是想将某字段内容按首字拼音排序

'birary' 不是可以识别的 内置函数名称
------------------------
消息 102,级别 15,状态 1,过程 read_listpinpa,第 8 行
'USING' 附近有语法错误。



------解决方案--------------------
没有这个函数。你确定你这个是MSSQL语法?应该不是
------解决方案--------------------
birary不是系统内置函数,USING是mysql的语法吧
------解决方案--------------------
SQL code

-- 将某字段内容按首字拼音排序
create table #t(id int,name varchar(20))

insert #t select 1,'中'
union all select 2,'国'
union all select 3,'人'
union all select 4,'阿'

select * from #t order by name collate Chinese_PRC_CS_AS_KS_WS 

id          name
----------- --------------------
4           阿
2           国
3           人
1           中

(4 row(s) affected)