自定义字符串变量赋值后,如何在查询语句中使用?比如:DECLARE @isforbid VARCHAR(1000)
SET @isforbid = 'XXXXXX'
SELECT * FROM tableA WHERE cName IN (@isforbid)这样子的查询结果是空的SELECT * FROM tableA WHERE cName IN ('XXXXXX')这样子的查询结果是有结果的。为什么字符串变量不能直接用在查询语句里呢?假如要用的话,应该如何使用?
SET @isforbid = 'XXXXXX'
SELECT * FROM tableA WHERE cName IN (@isforbid)这样子的查询结果是空的SELECT * FROM tableA WHERE cName IN ('XXXXXX')这样子的查询结果是有结果的。为什么字符串变量不能直接用在查询语句里呢?假如要用的话,应该如何使用?
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 = 'XXXXXX'
DECLARE @SQL=VARCHAR(MAX)
SET @SQL=N'SELECT * FROM tableA WHERE cName IN ('''+@isforbid+''')'
PRINT @SQL
EXEC (@SQL)
这样就行了,
不信你可以试试
DECLARE @isforbid VARCHAR(1000)
SET @isforbid = 'a'
exec ('SELECT * FROM c WHERE Name in ('''+ @isforbid +''')')