sql語句跟其他說話一樣,都有一些預界說的關頭字和特別字符。特別字符好比:單引號、百分號、下劃線等等,這些特別字符該怎么轉義呢?
建立一個姑且表,用于演示sqlserver語法中的特別字符轉義
IF OBJECT_ID('tempdb..#tblSpecial') IS NOT NULL DROP TABLE #tblSpecial;
CREATE TABLE #tblSpecial(
Col1 varchar(50),
Col2 varchar(200)
);
 往姑且表中插入一行測試數據,此中Col2列中含有一個特別字符:百分號。從執行成果來看,在插入的時辰百分號不需要轉義
insert into #tblSpecial(Col1, Col2) values('Code1', '第%列');
 往姑且表中插入一行測試數據,此中Col2列中含有一個特別字符:單引號。剛寫完單引號,就可以看到sql語句其實算報錯了,因為在sql中的字符串就是利用單引號包起來的
insert into #tblSpecial(Col1, Col2) values('Code10', '第'列');
 那么,若是非要往姑且表中,插入一個單引號,該若何轉義呢。其實,利用兩個單引號,就能暗示一個字符的單引號了
insert into #tblSpecial(Col1, Col2) values('Code10', '第''列');
 往姑且表中插入一行測試數據,此中Col2列中含有一個特別字符:下劃線。從執行成果來看,在插入的時辰下劃線不需要轉義
insert into #tblSpecial(Col1, Col2) values('Code100', '第_列');
 若是要查詢姑且表中Col2列含有百分號的成果,該怎么查詢呢?因為,恍惚查詢需要兩個百分號,那么,要查找的百分號利用中括號包起來即可
select * from #tblSpecial where Col2 like '%[%]%'
 若是要查詢姑且表中Col2列含有下劃線、單引號的成果,該怎么查詢呢?因為在sqlserver中,下劃線也是通配符,暗示任何一個字符,所以,同樣需要利用中括號包起來。至于單引號,仍然是兩個連起來的單引號,暗示一個單引號即可
select * from #tblSpecial where Col2 like '%[_]%' or Col2 like '%''%'
 0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!