我有
ID ID2 Amount
-------- -------- ------
01 02 20
01 03 30
02 04 40
02 06 30
03 05 70
03 06 60
03 07 60
04 08 100
04 09 110
我想将上面的数据查询到2个结果集中(最多返回5行):
结果1:
ID1 ID2 Amount
-------- -------- ------
01 02 20
01 03 30
02 04 40
02 06 30
结果2:
ID1 ID2 Amount
-------- -------- ------
03 05 70
03 06 60
03 07 60
04 08 100
04 09 110
我应该如何构造查询?
答案 0 :(得分:0)
使用row_number()
生成序列号。 (row_number() over (order by ID1) - 1) / 5 + 1
将为您提供每个结果5个的设置
; WITH CTE AS
(
SELECT result_no = (row_number() over (order by ID1) - 1) / 5 + 1,
ID1, ID2, Amount
FROM yourtable
)
SELECT *
FROM CTE
WHERE result_no = @result_no