2011-08-19 31 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';