我們這裡用到Control Character來處理
控制字元Control Character是什麼?
ASCII 編號0~31、127 這些編號,都是控制字元
控制字元,分別代表著entry,tab,換行...等等
CHAR(int):將ASCII碼轉換成字元
轉成字元,就可以插入字串中,sql解析器讀到時,就知道這個做什麼控制(換行/tab..等等)。
*就像在C#可以用newline()把換行加入字串中一樣的功能
這次我們會用到的有以下3個
Tab: CHAR(9)
換行(LineFeed): CHAR(10)
ENTER: CHAR(13)
我們來試試看
select '1'+char(9)+'2'
select '1'+char(10) +'2'
select '1'+char(13)+'2'
輸出
'1
2'
輸出
'1 2'
輸出
'1
2'
也可以用這個方法把Control Character拿掉.
*用replace
declare @cmd varchar(3000)
set @cmd = 'col1
,col2
,col3'
set @cmd = replace(@cmd,' ','')
set @cmd = replace(@cmd,Char(9),'')
set @cmd = replace(@cmd,Char(10),'')
set @cmd = replace(@cmd,Char(13),'')
select @cmd
ref
http://www.eion.com.tw/Blogger/?Pid=1128
ref
https://dotblogs.com.tw/dreamweaver0210/2014/05/06/144986
ref
這個很酷,可以把字串,一個個轉成ASCII.但如果遇到控制符號,它就會出錯.
https://docs.microsoft.com/zh-tw/sql/t-sql/functions/char-transact-sql?view=sql-server-ver15