自定义字符串变量赋值后,如何在查询语句中使用?
自定义字符串变量赋值后,如何在查询语句中使用?
比如:
DECLARE @isforbid VARCHAR(1000)
SET @isforbid = 'XXXXXX'
SELECT * FROM tableA WHERE cName IN (@isforbid)
这样子的查询结果是空的
SELECT * FROM tableA WHERE cName IN ('XXXXXX')
这样子的查询结果是有结果的。为什么字符串变量不能直接用在查询语句里呢?
假如要用的话,应该如何使用?
[解决办法]
DECLARE @isforbid VARCHAR(1000)
SET @isforbid = 'XXXXXX'
exec('SELECT * FROM tableA WHERE cName IN ('+ @isforbid+')')
DECLARE @isforbid VARCHAR(1000),@tsql varchar(6000)
SET @isforbid = 'XXXXXX'
select @tsql='SELECT * FROM tableA WHERE cName IN ('+@isforbid+')'
exec(@tsql)
DECLARE @isforbid VARCHAR(1000)
SET @isforbid = 'a'
exec ('SELECT * FROM c WHERE Name in ('''+ @isforbid +''')')