【发布时间】:2012-11-26 08:16:36
【问题描述】:
我在 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
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 计数记录),就像在这里回答的那样: How to return total number of records with TOP * select
但是:我不会为每个实例都返回这个值,但我想只返回一次 count。
有没有办法用一个查询来做到这一点,或者我必须为此编写一个单独的查询?
任何提示将不胜感激!
编辑:使用 SQL Server 2008 r2。
【问题讨论】:
-
哦,对不起,我忘了说:SQL server 2008 r2
标签: sql count sql-server-2008-r2 if-statement