依據大部分使用者的習慣,很多資料都會要求使用筆畫和注音來排序,資料量少可以直接在程式中處理,但是資料量一多好像就必須要在資料庫中分頁排序完再輸出資料比較節省時間,這裡就來示範兩種排序方式。
使用微軟提供的各式定序來排序即可
這樣在查詢時就不需要再額外指定 COLLATE ,直接使用 ORDER BY Name 就會依照注音筆畫排序。但是使用 COLLATE 會降低查詢效能。
參考資料:
Microsoft.Learn - Collation and Unicode support
依據筆畫排序
SELECT Name
FROM users
ORDER BY Name COLLATE Chinese_Taiwan_Stroke_CI_AS;
依據注音排序
SELECT Name
FROM users
ORDER BY Name COLLATE Chinese_Taiwan_Bopomofo_CI_AS;
使用微軟提供的各式定序來排序即可
指定預設排序規則
CREATE TABLE users (
Id INT PRIMARY KEY,
Name NVARCHAR(100) COLLATE Chinese_Taiwan_Bopomofo_CI_AS -- 預設使用注音排序
);
這樣在查詢時就不需要再額外指定 COLLATE ,直接使用 ORDER BY Name 就會依照注音筆畫排序。但是使用 COLLATE 會降低查詢效能。
參考資料:
Microsoft.Learn - Collation and Unicode support
感謝分享~
回覆刪除