1
次のシナリオでは、特定の条件で同じテーブルの上位3つのレコードが必要で、最初のクエリ結果を除外して2番目のクエリレコードとマージする必要があります。SQL Serverの異なる2つのクエリのレコードを並べ替える方法
表A:最新のレコードを最新のレコードのページインデックス1と行数5
Id Name Flag
----------------
6 F 1
4 D 1 first require flag =1 first 3 records
1 A 1
---------------------------------------
8 H 0
7 G 0
ページインデックス2と行数5と
Id Name Flag
-------------
1 A 1
2 B 0
3 C 0
4 D 1
5 E 0
6 F 1
7 G 0
8 H 0
トップ3フラグ= 1
Id Name Flag
--------------
6 F 1
5 E 0
3 C 0
2 B 0
これをSQLクエリでどのように実現できますか?
IF (@PageNumber = 0)
BEGIN
SELECT TOP (@RowsPerPage) [Id], [Name], [Flag]
FROM
(SELECT [Id], [Name], [Flag]
FROM
(SELECT TOP 3 [Id], [Name], [Flag]
FROM [A]
WHERE Flag = 1
ORDER BY Id DESC
UNION
SELECT [Id], [Name], [Flag]
FROM [A]
ORDER BY Id DESC) T
END
ELSE
BEGIN
// Normal paging query excluding top 3 flag records.
END
はい、それはタイプミスです –
を設定し、それは以下の私の答えをチェックしてくださいませんが –
ます試してみてください –