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 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!