变量的'Multiple'值



一点背景。来自多个数据库的多个表具有相同的模式。因此,当我查询以选择具有相同主代码的所有列时(在表中,主代码位于名为CATMASTRCAT的列中),相同的代码将有多个行,它们唯一相同的是CATMASTRCAT列。这适用于单个主代码(在下面的脚本中,如果我将变量设置为031325-002-70,它将显示具有不同组织和其他相同数据的多行,这是期望的结果)。

问题是,是否有办法让多个主代码作为变量的输入?我计划将其创建为存储过程。

这是我的SQL脚本:
DECLARE @ProductNumber AS VARCHAR(1000)
SET @ProductNumber = ('031325-002-70')
SELECT ITEMS
,ORGANIZATION
FROM [EU].[dbo].[SOMETHING14]
WHERE ITEMS in (@ProductNumber)
UNION
SELECT ITEMS
,ORGANIZATION
FROM [EU].[dbo].[SOMETHING12]
WHERE ITEMS in (@ProductNumber)

UNION
SELECT ITEMS
,ORGANIZATION
FROM [EU].[dbo].[SOMETHING11]
WHERE ITEMS IN (@ProductNumber)

请随意澄清任何其他需要的数据。我对SQL相当陌生,只是自学。你也可以告诉我错误的代码,哈哈,以及如何做得更好。

谢谢!

注:附查询结果图片

是的,最好的方法是使用表值参数,然后将where子句改为

WHERE catmastrcat IN (SELECT catmastrcat FROM @tablevaluename)

或者您可以使用内部连接——根据索引和其他问题,这可能更快——其代码如下所示

JOIN @tablevaluename tv ON AJF_CATMASTER.catmastrcat = tv.catmastrcat

相关内容

  • 没有找到相关文章