[SQL Server][T-SQL]輸入全半形空白

來到周末前,客戶跑來同事的桌邊問了一個小問題,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)

解題完畢!來陪不睡覺的女兒玩!

 


參考:

CHAR (Transact-SQL)

ASCII Wiki

CNS11643 全形空格