我在 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 计数记录),就像这里回答的那样: 如何返回带有 TOP * 的记录总数选择
但是:我不会为每个实例返回这个值,但我想只返回一次计数。
有没有办法用一个查询来做到这一点,或者我必须为此编写一个单独的查询?
任何提示将不胜感激!
编辑:使用 SQL Server 2008 r2。