[SQL] SQL定序及Azure雲端資料庫定序問題
之前專案的資料庫是放在 Azure 雲端,後來有個調整是要將下拉選單的選項依照名稱排序,那麼此時會遇到奇怪的情況:
基操的 ORDER BY Name 取得的資料竟然沒有照中文筆畫大小排序!!!
這邊就直接附上解法:
1) 什麼是定序:決定資料庫所使用的字元集、排序的方式
2) 先查詢目前資料庫的定序是什麼?
SELECT CONVERT (varchar(256), SERVERPROPERTY('collation'))
我取得的定序是 SQL_Latin1_General_CP1_CI_AS,而若使用這個定序,就無法依照中文筆畫排序。
* 可以參考 微軟的定序頁面
3) 若是要照中文筆畫排序,則使用該定序 chinese_taiwan_stroke_ci_as
SELECT * FROM User ORDER BY Name chinese_taiwan_stroke_ci_as
4) 若是要照ㄅㄆㄇㄈ排序,則使用該定序 Chinese_Taiwan_BOPOMOFO_CI_AI
SELECT * FROM User ORDER BY Name Chinese_Taiwan_BOPOMOFO_CI_AI
留言
張貼留言