怎样在sql语句的in子句中使用单引号?

来源:百度知道 编辑:UC知道 时间:2024/06/15 09:26:36
各位,我写了个存储过程,如下所示:
declare @f varchar(20)
set @f='''张三'',''李四'''
SELECT *
FROM INS_ReportIndex where fillperson in (@f)
因为要在字符串中使用单引号,所以我使用了两个单引号。但为什么执行这条语句后什么都查不到哪?
(注:如果我写成select * from INS_ReportIndex where fillperson in ('张三','李四')就可以查出来,现在“'张三','李四'”需要动态地从外面传进来)
如果写成set @f=''张三','李四'' 当然会报错,因为系统会把''看成一个闭合的字符串

用动态语句吧
declare @f varchar(20)
set @f='''张三'',''李四'''
declare @sqlstr varchar(8000)

set @sqlstr='
SELECT *
FROM INS_ReportIndex where fillperson in ('+@f+') '
exec (@sqlstr)

set @f='''张三','李四''' 就可以

set @f=''张三','李四''