我正在使用 t-sql,我需要以自定义方式订购结果集。考虑下表和查询:
CREATE TABLE DeleteMe
(Col1 INT)
INSERT INTO DeleteMe
VALUES
(0), (2), (2), (3), (4), (4), (4)
SELECT ROW_NUMBER() OVER (ORDER BY Col1) AS OrderBy, Col1 FROM DeleteMe
ORDER BY Col1
返回:
按 Col1 排序
1 0
2 2
3 2
4 3
5 4
6 4
7 4
但是,我需要的是:
按 Col1 排序
1 0
2 2
2 2
3 3
4 4
4 4
4 4
本质上,对于 Col1 的每个相同值,OrderBy 值应该相同。OrderBy 属性需要从 1 开始并且是连续的。因此,如果您删除 Col1 = 0 的记录,结果将再次从 1 开始:
按 Col1 排序
1 2
1 2
2 3
3 4
3 4
3 4
我一直在玩 Partition By 和其他一些东西,在这一点上我很难过。任何帮助表示赞赏。