SQLでIFELSEステートメントを使用すると状況が発生します。
@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*でレコードの総数を返す方法選択する
ただし、すべてのインスタンスに対してこの値を返すわけではありませんが、カウントを1回だけ返したいと思います。
1つのクエリでこれを行う方法はありますか、またはこれに対して別のクエリを作成する必要がありますか?
ヒントをいただければ幸いです。
編集:SQL Server2008r2を使用します。