2011-08-19 81 views
1

我想構建一個查詢,我檢查從sql select返回的行數。例如,我要檢查,如果從查詢返回的行數是大於3,然後做點別的什麼都不做使用sql的結果select in if

if @@rowcount(select clientId from Clients group by clientId) > 3 
    PRINT 'WARNING' 

任何想法表示讚賞

+0

你們是不是要做到這一切,在查詢內部或者您使用的T-SQL? – AJC

+0

在查詢中可以設置存儲過程 – vbNewbie

+0

那麼,在存儲過程中,您可以使用T-SQL。如在**中選擇[at] count = count(*)從表中where條件**,然後使用SP中任意位置的[at]值進行計數。如果在查詢中,您必須按照我在答案中所述的方式進行操作。您可以將** case **放入** select **或**其中** – AJC

回答

1

希望這有助於

將帖子

DECLARE @Cnt AS INT 
select @Cnt = COUNT(clientId) from Clients group by clientId 
if @Cnt > 3 
PRINT 'WARNING' 
+0

這將返回數據,無論是1個客戶端還是100,000個客戶端。不確定是否需要。 –

+0

我將@@ ROWCOUNT改爲變量。我的邏輯都應該工作。這將顯示警告,如果客戶端數量僅大於3。 – teenboy

4

嘗試:

case 
    when (select count(*) from table where condition) > 3 Then 
    else 
end 

希望這有助於...

3
DECLARE @Count INT = (SELECT COUNT(DISTINCT ClientId) FROM Clients); 

IF @Count > 3 
    PRINT 'WARNING';