使用IF-ELSE时SQL选择所有行的计数
在SQL中使用IF-ELSE语句时会出现这种情况使用IF-ELSE时SQL选择所有行的计数,sql,count,sql-server-2008-r2,if-statement,Sql,Count,Sql Server 2008 R2,If Statement,在SQL中使用IF-ELSE语句时会出现这种情况 @searchString nvarchar(50), @languageId int, @count int, @id int IF(@count IS NOT NULL) SELECT TOP (@count) Id, value FROM TABLE1 WHERE (Id IN (SELECT Id FROM TABLE2 WHER
@searchString nvarchar(50),
@languageId int,
@count int,
@id int
IF(@count IS NOT NULL)
SELECT TOP (@count) Id, value
FROM TABLE1
WHERE (Id IN
(SELECT Id
FROM TABLE2
WHERE (Id = @id))) and languageId = @languageId AND value LIKE '%' + @searchString + '%'
ORDER BY value
ELSE
SELECT Id, value
FROM TABLE1
WHERE (Id IN
(SELECT Id
FROM TABLE2
WHERE (Id = @id))) and languageId = @languageId AND value LIKE '%' + @searchString + '%'
ORDER BY value
我想使用返回所有行的数量
count(*)over()(或类似内容)
(因为我现在只返回TOP count记录),就像这里回答的那样:
但是:我不会对每个实例都返回这个值,但我只想返回count一次
有没有一种方法可以通过一个查询来实现这一点,或者我必须为此编写一个单独的查询
任何提示都将不胜感激
编辑:使用SQL server 2008 r2。我建议您使用内部联接,例如脚本: { 剧本 挑选
l.localite_id,
p.patient_id,
p.patient_date_naissance,
p.patient_gsm, p.patient_tel
从
病人p
内连接局部l
在l.localite_id=p.localite_id上
内联维尔五号
关于v.ville\u id=l.ville\u id
内连接管
关于v.gouv_id=g.gouv_id
内部联合支付
ON pays.pays_id=g.pays_id
如果NEQ#患者#gsm#-1
其中p.patient_gsm类似于#patient_gsm#
还有p.病人代码,比如病人代码#
恩迪夫
结束
}哦,对不起,我忘了提到:SQL server 2008 r2