簡體   English   中英

SQL選擇帶有計數的聯合

[英]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.

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