http://xiangai.taobao.com
http://shop148612228.taobao.com

SQL 的转义字符是:'(单引号)

SQL 的转义字符是:'(单引号)

例:select * from tbl where uyear='''06'

请注意其中红色背景的单引号,它即表示转义字符,如果我们省略,则整个语句会出错,转义字符不会输出,上例中 uyear 的实际条件值为 '06,而不是 ''06

为什么不能省略呢,假如我们省略,上句变成:select * from tbl where uyear=''06'

由于在 SQL 中单引号表示字符串的开始和结束符号,于是?SQL 解释器会认为语句中灰色背景的为字符串,其后的语句显然是个错误的语句,当然会报错,为了解决字符串的单引号问题,就出现了转义字符单。

sql server有两个转义符: ' 默认情况下, '是字符串的边界符, 如果在字符串中包含', 则必须使用两个', 第1个'就是转义符

另一个转义符是"
SET QUOTED_IDENTIFIER OFF时, "是字符串边界符, 字符串中的"必须用两个"表示。
vb: "" <=> " sql server 2000: ''' <=> '

sql server 2000:""" <=> "

eg:

declare @SearchType nvarchar(50) declare @SearchString nvarchar(255) declare @SearchKey nvarchar(50) declare @SearchSql nvarchar(2000)

set @SearchType = '2' set @SearchKey = 'd'

set @SearchString = CASE @SearchType when '1' then '1 = 1' when '2' then 'p.ProjectName like ''' + '%' + @searchkey + '%' + '''' when '3' then 'p.ProjectCity like ''' + '%'+ @searchkey + '%' +'''' when '4' then 'c.CateName like ''' + '%' + @searchkey + '%' + '''' when '4' then 'p.ProjectManager like ''' + '%' + @searchkey + '%' +'''' END

set @SearchSql = N'

SELECT p.*,datename(year,ProjectPostTime)+ ' + '''-''' + ' + datename(month,ProjectPostTime)+ '+ '''-''' + ' + datename(day,ProjectPostTime)' + ' as PostTime, m.EmpName,c.CateName FROM proProject As p ,mrBaseInf As m ,proCate c WHERE p.EmpID = m.EmpID and p.CateID = c.CateID and ' ? ?+ @SearchString

print(@SearchSql)

exec(@SearchSql)

posted @   万事俱备就差个程序员  阅读(18553)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具

http://xiangai.taobao.com
http://shop148612228.taobao.com
如果您觉得对您有帮助.领个红包吧.谢谢.
支付宝红包
微信打赏 支付宝打赏
点击右上角即可分享
微信分享提示