SQL集多个,与语句中的相同

SQL集多个,与语句中的相同,sql,sql-server,Sql,Sql Server,我对SQL相当陌生。 我想知道是否有可能为许多项目设置,例如 SET @item in ('11', '12', '13', '14') 所以在WHERE语句中,我可以 WHERE item_id = @ item 谢谢大家! 使用标量变量无法做到这一点 但是,您可以使用表变量存储多个值,以便在WHERE子句中可以: WHERE item_id IN (SELECT item_id FROM @item) Tab是对的。像这样的东西也能起作用 declare @tab table(Fir

我对SQL相当陌生。 我想知道是否有可能为许多项目设置,例如

SET
@item in ('11', '12', '13', '14')
所以在WHERE语句中,我可以

WHERE
item_id = @ item

谢谢大家!

使用标量变量无法做到这一点

但是,您可以使用表变量存储多个值,以便在WHERE子句中可以:

WHERE item_id IN (SELECT item_id FROM @item)

Tab是对的。像这样的东西也能起作用

declare  @tab table(FirstName  varchar(100))
insert into @tab   values('John'),('Sarah'),('George')

SELECT * 
FROM @tab
WHERE 'John' in (FirstName)
或者像Tab的例子一样

SELECT * FROM MyTable WHERE MyField IN(Select FirstName FROM tab)

您可以使用表变量并插入值:

declare @itens table (id int)
insert into @itens (id) values (1),(2),(3),(4),(5)
然后你可以用

WHERE item_id in (select id from @ item)

不,但是你可以试着交换他们的位置。你的问题不清楚。也许你可以试着用文字来解释,因为看起来你不知道。好像在试图设置一个变量,但没有一个表?也许你想要一个阵列?当你尝试时会发生什么?好的,非常感谢!啊,我明白了!非常感谢。