当前位置: 数据库>sqlserver
sql 单引号使用应注意的问题
来源: 互联网 发布时间:2014-08-29
本文导语: sql语句中,单引号中间的为字符串,比如在SQL中定义一个字符串并赋值的,值要用两个单引号括起来,如下面的例子: Declare @str Varchar(50) Select @str = 'welcome to www.' 问题总是随之而来,有时需要在SQL中的字符串插入单引号,此...
sql语句中,单引号中间的为字符串,比如在SQL中定义一个字符串并赋值的,值要用两个单引号括起来,如下面的例子:
Declare @str Varchar(50) Select @str = 'welcome to www.'
问题总是随之而来,有时需要在SQL中的字符串插入单引号,此时要注意到,单引号还可以作为转义字符使用哦。
即两个连着的单引号在字符串中表示一个单引号,迷糊了有木有,不要怕,接着往下看。
例如,将I'm a student赋值给一个字符串变量可以这样来写:
Declare @str Varchar(50) Select @str = 'I''m a student'
下面是一个字符串连接的例子。
Declare @strFieldName Varchar(255) Declare @strTableName Varchar(255) Declare @strFieldValue varchar(100) Select @strTableName = 'USERS' Select @strFieldName = 'UserName' Select @strFieldValue = 'jaffee' print @strFieldName print @strTableName print @strFieldValue declare @Str Varchar(300) select @Str = 'Select Count(['+@strFieldName+']) From ['+@strTableName+'] Where ['+@strFieldName+'] = '''+ @strFieldValue + '''' print @str
因为jafee是字符串类型,如果用
select @Str = 'Select Count(['+@strFieldName+']) From ['+@strTableName+'] Where ['+@strFieldName+'] = '+ @strFieldValue
执行后,会是这样的结果:
@str这个串的值是Select Count([UserName]) From [USERS] Where [UserName] = jaffee1900
修改为如下结构,才可以正常执行。
select @Str = 'Select Count(['+@strFieldName+']) From ['+@strTableName+'] Where ['+@strFieldName+'] = '''+ @strFieldValue + ''''
相当于如下的结构:
Select Count([UserName]) From [USERS] Where [UserName] = 'jaffee1900'
附:
sql查询含有单引号的字段:
select 字段列表 from 表名 where 字段名 like ’%’+char(39)+’%’