簡體   English   中英

變量的“多個”值

[英]'Multiple' values for a variable

一點背景。 多個數據庫中有多個表具有相同的模式。 因此,當我查詢 select 具有相同主代碼的所有列(在表中,主代碼位於名為 CATMASTRCAT 的列中)時,相同的代碼將有多個行,它們唯一相同的是 CATMASTRCAT 列。 這適用於單個主代碼(在下面的腳本中,如果我將變量設置為 031325-002-70,它將顯示具有不同組織的多行和與 rest 相同的數據,這是期望的結果)。

問題是,有沒有辦法讓多個主代碼作為變量的輸入? 我打算將其創建為存儲過程。

這是我的 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比較陌生,只是自學。 你也可以教我錯誤的代碼哈哈以及如何做得更好。

謝謝!

PS附上查詢結果圖片

是的,最好的方法是使用表值參數,然后將 where 子句更改為

WHERE catmastrcat IN (SELECT catmastrcat FROM @tablevaluename)

或者您可以使用內部聯接——這可能會更快,具體取決於索引和其他問題——代碼如下所示

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM