[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

留言

這個網誌中的熱門文章

[C#] 無法載入檔案或組件 或其相依性的其中之一。 找到的組件資訊清單定義與組件參考不符。 (發生例外狀況於 HRESULT: 0x80131040)

[Cloud CICD] 後端篇 - .Net8 WebApi, Github Action, Azure App Service

[Cloud CICD] 前端篇 - Vue3, Github Action, Azure Static Web App