[英]Sql select union with count
我有一個存儲過程,它返回帶有一堆聯合的行。 我要嘗試執行的操作是查看select語句是否不產生任何行,如果是,則執行另一個腳本。
這是我在存儲過程中使用的當前SQL選擇。 請讓我知道我如何實現這一目標。
SELECT name AS [Name], address1 AS Address1, address2 AS Address2, city AS City, 1 AS DeliveryTypeKey, email AS Email,
( SELECT TOP 1 c_phone_number
FROM phone WITH (NOLOCK)
WHERE value = @value) AS Fax
FROM #Cities x
INNER JOIN prov p WITH (NOLOCK) ON x.ckey = p.pkey
UNION
SELECT name AS [Name], address1 AS Address1, address2 AS Address2, city AS City, 1 AS DeliveryTypeKey, email AS Email,
( SELECT TOP 1 c_phone_number
FROM phone WITH (NOLOCK)
WHERE value = @value) AS Fax
FROM #Cities1 x
INNER JOIN prov1 p WITH (NOLOCK) ON x.ckey = p.pkey
UNION
SELECT name AS [Name], address1 AS Address1, address2 AS Address2, city AS City, 1 AS DeliveryTypeKey, email AS Email,
( SELECT TOP 1 c_phone_number
FROM phone WITH (NOLOCK)
WHERE value = @value) AS Fax
FROM #Cities2 x
INNER JOIN prov2 p WITH (NOLOCK) ON x.ckey = p.pkey
使用ROWCOUNT函數檢查是否返回了任何行:
DECLARE @table TABLE
(
DATA INT
)
INSERT @table
VALUES (0)
SELECT *
FROM @table
WHERE DATA > 0
IF @@ROWCOUNT = 0
SELECT 'run'
ELSE
SELECT 'Don''t run'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.