來到周末前,客戶跑來同事的桌邊問了一個小問題,T-SQL要如何輸入全型空白(空格),為了工程師肉眼的可維護性,除了直接輸入這種' ',想找其他的解法,剛剛跑步時想到客戶的問題,想到幾種解法,快來筆記一下。
T-SQL CHAR函數
首先第一個想到以前要塞控制字元像是換行符號、TAB鍵時會用到的CHAR函數,透過輸入ASCII的10進位編碼
控制字元 | Value |
---|---|
Tab | char(9) |
換行字元 | char(10) |
歸位字元 | char(13) |
空白 | char(32) |
控制字元:
顯示字元:
對也,ASCII只有半形空白,這招失敗。
--半形空白(使用CHAR函數輸入ASCII 10進位數值)
SELECT CONVERT(VARBINARY,CHAR(32))
輸入其他編碼
接著試試直接輸入其他有全形空格的編碼來解,先到CNS11643網站查到全形空格的編碼:
串成T-SQL就是
--BIG5編碼
SELECT CONVERT(VARCHAR,0xA140)
--Unicode編碼
SELECT CONVERT(NVARCHAR,0x0030)
解題完畢!來陪不睡覺的女兒玩!