在sql server中创建全局变量列表/集合
问题描述:
DECLARE @Companies_List char(25)
SET @Companies_List = ('Amazon','Google','Facebook')
select *
from companies
where name in @Companies_List
我是SQL Server的新手。我试图创建一个包含我想在SQL where
子句中使用的值的全局集合,但显然上面的脚本不起作用。任何想法我应该怎么做?非常感谢!在sql server中创建全局变量列表/集合
答
我会创造一个TABLE
变量和这样的名单做一个JOIN
它:
DECLARE @Companies_List TABLE
(
Name Char(25)
)
INSERT @Companies_List (Name)
VALUES ('Amazon'), ('Google'), ('Facebook')
SELECT C.*
FROM Companies C
JOIN @Companies_List CL ON C.Name = CL.Name
如果你想更具体的东西,你应该做一个物理TABLE
。
+0
太棒了!谢谢! –
表变量答案是一个好主意。表定义与你声明为'char(25)'的变量匹配。我建议使用'varchar(25)'代替。 – Morpheus