SQL 的转义字符是:'(单引号), char(39) 也可以代表单引号例:select * from tbl where uyear='''06'
请注意其中红⾊背景的单引号,它即表⽰转义字符,如果我们省略,则整个语句会出错,转义字符不会输出,上例中 uyear 的实际条件值为 '06,⽽不是 ''06为什么不能省略呢,假如我们省略,上句变成:select * from tbl where uyear=''06'
由于在 SQL 中单引号表⽰字符串的开始和结束符号,于是 SQL 解释器会认为语句中灰⾊背景的为字符串,其后的语句显然是个错误的语句,当然会报错,为了解决字符串的单引号问题,就出现了转义字符单。
-------------------------- 整理 by smilysoft------------------------------------------------------------------------------------------如果修改的某个字段的值中包含单引号时如何处理?
如表A有name字段,想修改该字段的某个值为【O'neal 】该如何修改?
⼀般会⽤双单引号来转义⽤来存储带有单引号的内容,这⾥介绍另外⼀种转换⽅法 char(39) 也可以代表单引号。⼀ update A set name='O''neal' where...
⼆ update A set name='O' + char(39) + 'neal' where.... 上边2个sql语句执⾏的效果是⼀样的。
---------------------------------------------------------------------------------------------------------------------------------------sql server有两个转义符: '默认情况下, '是字符串的边界符(半⾓的单引号),
如果在字符串中包含', 则必须使⽤两个',第1个'就是转义符 另⼀个转义符是\" (双引号,半⾓)当SET QUOTED_IDENTIFIER OFF时, \"是字符串边界符, 字符串中的\"必须⽤两个\"表⽰。
vb: \"\"<=> \"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 @SearchS SET QUOTED_IDENTIFIER OFF 是 SQL-92 设置语句,使 SQL Server 2000/2005 遵从 SQL-92 规则。 当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,⽽⽂字必须由单引号分隔。当 SET QUOTED_IDENTIFIER 为 OFF 时,标识符不可加引号,且必须符合所有 Transact-SQL 标识符规则。 SQL-92 标准要求在对空值进⾏等于 (=) 或不等于 (<>) ⽐较时取值为 FALSE。当 SET ANSI_NULLS 为 ON 时,即使 column_name 中包含空值,使⽤
WHERE column_name = NULL 的 SELECT 语句仍返回零⾏。即使 column_name 中包含⾮空值,使⽤ WHERE column_name <> NULL 的 SELECT 语句仍会返回零⾏。 当 SET ANSI_NULLS 为 OFF 时,等于 (=) 和不等于 (<>) ⽐较运算符不遵从 SQL-92 标准。使⽤ WHERE column_name = NULL 的 SELECT 语句返回 column_name 中包含空值的⾏。使⽤ WHERE column_name <> NULL 的 SELECT 语句返回列中包含⾮空值的⾏。此外,使⽤ WHERE column_name <> XYZ_value 的 SELECT 语句返回所有不为 XYZ_value 也不为 NULL 的⾏。
⼀、搜索通配符字符的说明
可以搜索通配符字符。有两种⽅法可指定平常⽤作通配符的字符:
使⽤ ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使⽤:WHERE ColumnA LIKE '%5/%%' ESCAPE '/'
在上述 LIKE ⼦句中,前导和结尾百分号 (%) 解释为通配符,⽽斜杠 (/) 之后的百分号解释为字符 %。
在⽅括号 ([ ]) 中只包含通配符本⾝。要搜索破折号 (-) ⽽不是⽤它指定搜索范围,请将破折号指定为⽅括号内的第⼀个字符:WHERE ColumnA LIKE '9[-]5'
下表显⽰了括在⽅括号内的通配符的⽤法。符号 含义
LIKE '5[%]' 5%
LIKE '5%' 5 后跟 0 个或更多字符的字符串LIKE '[_]n' _n
LIKE '_n' an, in, on (and so on)LIKE '[a-cdf]' a, b, c, d, or fLIKE '[-acdf]' -, a, c, d, or fLIKE '[ [ ]' [LIKE ']' ]
⼆、实例说明:
在表PersonalMember中查找strloginname字段中含有\"[\"的记录。
可⽤三条语句:1、
select strloginname,* from PersonalMember where strloginname like '%\\[%' escape '\\'2、(说明\"\\\"与\"/\"均可与escape关键字结合作为转义符)
select strloginname,* from PersonalMember where strloginname like '%/[%' escape '/'3、
select strloginname,* from dbo.PersonalMember where charindex('[',strloginname)>0⽂章转载⾃⽹管之家:http://www.bitscn.com/plus/view.php?aid=97312
因篇幅问题不能全部显示,请点此查看更多更全内容