一般來講這種情況是不是出現的,但有時資料庫的字型編碼方式和顯示的編碼方式不一樣時就是有這種需求,如簡體和繁體,就會出現資料庫裡的排序和顯示的排序不對的情況,就會有這種需求,但可能情況不一樣,請自己根據自己的需求來分析,說得不到請諒解漢字!
排序規則簡介
什麼叫排序規則呢?
ms是這樣描述的:"在
microsoft sql server 2000
中,字串的物理儲存由排序規則控制。排序規則指定表示每個字元的位模式以及儲存和比較字元所使用的規則。
"在查詢分析器內執行下面語句,可以得到
sqlserver
支援的所有排序規則。
select * from ::fn_helpcollations()
排序規則名稱由兩部份構成,前半部份是指本排序規則所支援的字符集。如:
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區分
區分大小寫
:如果想讓比較將大寫字母和小寫字母視為不等,請選擇該選項。
區分重音
:如果想讓比較將重音和非重音字母視為不等,請選擇該選項。如果選擇該選項,比較還將重音不同的字母視為不等。
區分假名
:如果想讓比較將片假名和平假名日語音節視為不等,請選擇該選項。
區分寬度
:如果想讓比較將半形字元和全形字符視為不等,請選擇該選項
自己可以根據自己的需求來修改sql語句
Oracle漢字排序
使用一下sql t 0303003 bystock holder 進行選取資料時 stock holder為存放中文的字段 結果發現兩庫返回的記錄順序不一致。琢磨之後應該為字符集問題,乙個庫字符集為系統預設字符集,另乙個庫為utf 8字符集。查詢資料後發現,對於中文字段的排序,應該使用以下方式 按拼...
Mysql 漢字排序
mysql按照漢字的拼音排序 按照漢字的拼音排序,用的比較多是在人名的排序中,按照姓氏的拼音字母,從a到z排序 如果儲存姓名的字段採用的是gbk字符集,那就好辦了,因為gbk內碼編碼時本身就採用了拼音排序的方法 常用一級漢字3755個採用拼音排序,二級漢字就不是了,但考慮到人名等都是常用漢字,因此只...
oracle 漢字排序
1 使用拼音排序 nls sort schinese pinyin m 2 使用筆畫排序 nls sort schinese stroke m 第一順序筆畫,第二順序部首 3 使用偏旁部首排序 nls sort schinese radical m 第一順序部首,第二順序筆畫 這樣,就可以在查詢的時...