標籤

2024年3月6日 星期三

定序解決SQL Server查詢 未分大小寫的問題



SELECT * FROM USER WHERE NAME = 'Vivi'
出來的結果竟然是
Id | Name
--- | ---
1 | Vivi
2 | vivi
沒有區分大小寫!!
查了一下原來是定序的問題


定序後面的那些參數:


CI:不區分大小寫。
CS:區分大小寫。
AS:區分有腔調及無腔調的字元,例如,「a」不等於「ấ」。
AI:不區分腔調字元。
KS:區分日文平假名與片假名,省略就是不區分。
WS:區分全形與半形,省略就是不區分。台灣的定序有兩種:Chinese_Taiwan_Bopomofo及Chinese_Taiwan_Stroke。Chinese_Taiwan_Bopomofo:用ㄅㄆㄇㄈ進行排序。
Chinese_Taiwan_Stroke:用筆畫進行排序。



那要怎麼修正呢?
辦法有兩種:


直接從屬性改資料庫的定序。
查詢後面加COLLATE強制改變定序。



第一種方法也是最簡單的方法,直接改資料庫定序,永無後患~
設定路徑:對資料庫右鍵 -> 屬性 -> 選項 -> 定序



COLLATE強制改變定序

如果今天只是有特定幾個條件需要改變定序,那COLLATE就會是很好的方法!
直接提供程式碼給大家看:
SELECT * FROM USER WHERE NAME = 'Vivi' COLLATE Latin1_General_CS_AS;


輸出結果:
Id | Name
--- | ---
1 | Vivi
SELECT * FROM USER Order By Name COLLATE Latin1_General_CS_AS;


輸出結果:
Id | Name
--- | ---
1 | vivi
2 | Vivi

注意:COLLATE是要在每組條件個別加,不是在SQL最後寫一次就會讓所有的比對都區分大小寫。SELECT * FROM USER WHERE NAME = 'Vivi' COLLATE Latin1_General_CS_AS Order By Name COLLATE Latin1_General_CS_AS;

資料來源:https://ithelp.ithome.com.tw/articles/10313369

沒有留言:

Win10新增ㄅ半注音輸入法

SETP 1 下載並新增ㄅ半的登錄檔 先到 Mega雲端空間 下載檔案。 SETP 2 點兩下開啟【微軟ㄅ半注音.reg】 SETP3 新增ㄅ半設定 這時候點右下角的「ㄅ」可以看到有兩個ㄅ的微軟注音,仔細看可以發現兩個ㄅ有些微的不同,上面那個ㄅ的圖案是完全正方形(新注音),而下面...