声明可以通过SQL Server 2008中声明的变量传递Where语句吗?我该如何做这样的事情?Where声明变量Sql Server
declare @foo as nvarchar(max) = '9510,9580,5030'
SELECT T1.[ItemCode]
FROM tbl1 T1
WHERE T1.ItemCode in (@foo)
当我运行这段代码我foo的变量可以容纳至少一个项目或100个项目,一个依赖于另一个结果
声明可以通过SQL Server 2008中声明的变量传递Where语句吗?我该如何做这样的事情?Where声明变量Sql Server
declare @foo as nvarchar(max) = '9510,9580,5030'
SELECT T1.[ItemCode]
FROM tbl1 T1
WHERE T1.ItemCode in (@foo)
当我运行这段代码我foo的变量可以容纳至少一个项目或100个项目,一个依赖于另一个结果
您可以通过使用EXEC做到这一点。
declare @foo as nvarchar(max) = '9510,9580,5030'
declare @SQLString as nvarchar(max)
set @SQLString = 'SELECT T1.[ItemCode]
FROM tbl1 T1
WHERE T1.ItemCode in (' + @foo + ')'
exec (@SQLString)
谢谢,这个工作完美。 – xoga17
我会用表变量:
DECLARE @foo AS NVARCHAR(max) = 'yourstring'
DECLARE @SQLString table (name NVARCHAR(max))
INSERT INTO @SQLString
SELECT T1.[ItemCode]
FROM tbl1 T1
WHERE T1.ItemCode LIKE ('%' + @foo + '%')
SELECT * FROM @SQLString
[这里有一个答案(http://stackoverflow.com/a/5381780/679449) – Kermit