[英]Azure stored procedure out value
我一直試圖在我的Azure數據庫上組裝一個存儲過程,當它運行查詢時,它從一個特定列返回一個輸出值。
由於要查詢的表有3列,所以多個結果的可能性為零,查詢必須達到2。然后,它從另一個表中獲取數據。 關鍵是我需要第一個查詢輸出值才能開始第二個查詢。
目前我有2個程序,我想有一個。
目前查詢如下:
select
customers_catalogs_define.catalog_id
from
customers_catalogs
left outer join
customers_catalogs_define on customers_catalogs.catalog_id = customers_catalogs_define.catalog_id
where
customers_catalogs.catalog_unique_identifier = @catalog_unique
AND customers_catalogs_define.customer_id = @customer_id
當然,輸出是catalog_id
。 由此,我將其帶入另一個查詢,該查詢可以進行實際的列表檢索。 至少我想添加一條僅聲明@catalog_id = output
謝謝
基本上,您有兩種選擇可以進行這項工作:
由於我沒有看到您的第二個查詢,因此只需確保其查詢下面列出的正確表為CUSTOMERS_CATALOGS_DEFINE
按照您的建議使用變量:
DECLARE @CATALOG_ID INT
SET @CATALOG_ID = (
SELECT CUSTOMERS_CATALOGS_DEFINE.CATALOG_ID
FROM CUSTOMERS_CATALOGS
LEFT OUTER JOIN CUSTOMERS_CATALOGS_DEFINE
ON CUSTOMERS_CATALOGS.CATALOG_ID = CUSTOMERS_CATALOGS_DEFINE.CATALOG_ID
WHERE CUSTOMERS_CATALOGS.CATALOG_UNIQUE_IDENTIFIER = @CATALOG_UNIQUE
AND CUSTOMERS_CATALOGS_DEFINE.CUSTOMER_ID = @CUSTOMER_ID )
SELECT *
FROM CUSTOMERS_CATALOGS_DEFINE
WHERE CATALOG_ID = @CATALOG_ID
第二種選擇是在一個查詢中執行此操作:
SELECT *
FROM CUSTOMERS_CATALOGS_DEFINE
WHERE CATALOG_ID IN (
SELECT CUSTOMERS_CATALOGS_DEFINE.CATALOG_ID
FROM CUSTOMERS_CATALOGS
LEFT OUTER JOIN CUSTOMERS_CATALOGS_DEFINE
ON CUSTOMERS_CATALOGS.CATALOG_ID = CUSTOMERS_CATALOGS_DEFINE.CATALOG_ID
WHERE CUSTOMERS_CATALOGS.CATALOG_UNIQUE_IDENTIFIER = @CATALOG_UNIQUE
AND CUSTOMERS_CATALOGS_DEFINE.CUSTOMER_ID = @CUSTOMER_ID
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.