聲明可以通過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