我想弄清楚如何在Sql Server中創建一個包含值的數組的var變量,但是在Stack中搜索到的卻沒有任何一致的......這就是我想象中的可能是這樣的:SQL Server 2008中的數組變量
declare @partners as nvarchar(max) = ('partner1','partner2');
select * from partners
where partner in (@partners);
在SQL Server中可以嗎?怎麼樣?
謝謝!
我想弄清楚如何在Sql Server中創建一個包含值的數組的var變量,但是在Stack中搜索到的卻沒有任何一致的......這就是我想象中的可能是這樣的:SQL Server 2008中的數組變量
declare @partners as nvarchar(max) = ('partner1','partner2');
select * from partners
where partner in (@partners);
在SQL Server中可以嗎?怎麼樣?
謝謝!
你可以用表
declare @partnersList as table(partnerName varchar(100))
insert into @partnersList values('partner1'),('partner2')
SELECT *
FROM partners
WHERE 'partner' in (SELECT partnerName FROM @partnersList)
做到這一點你不能這樣做,但你可以使用表變量來獲得相同的行爲:
declare @partners TABLE (
Name nvarchar(max)
)
INSERT @partners
VALUES
('partner1'),
('partner2')
select * from partners
where partner in (
SELECT Name
FROM @partners
)
或者你可以執行它動態:
declare @partners as nvarchar(max) = ' ''partner1'',''partner2'' '
declare @sql nvarchar(Max)
Set @sql='SELECT * FROM partners WHERE [partner] IN ('+ @partners +')'
exec sp_executesql @sql
令人失望的是SQL Server不支持這種邏輯,但是這個解決方案很實用,解決了我的問題,謝謝! – jvbarsou