我正在使用MS SQL我想用两列替换我的sql结果。与
非常相似的东西SELECT id, fid, key
FROM TEST
ORDER BY ROW_NUMBER() OVER ( PARTITION BY fid ORDER BY fid)
但是使用两列。例如,如果我在表格中有以下信息:
1 | 1 | KEY1
2 | 2 | KEY1
3 | 3 | KEY1
4 | 1 | KEY2
5 | 2 | KEY2
6 | 3 | KEY2
7 | 1 | KEY3
我希望输出为左
1 | 1 | KEY1
5 | 2 | KEY2
3 | 3 | KEY1
4 | 1 | KEY2
2 | 2 | KEY1
6 | 3 | KEY2
7 | 1 | KEY3
或
4 | 1 | KEY2
2 | 2 | KEY1
6 | 3 | KEY2
7 | 1 | KEY3
5 | 2 | KEY2
3 | 3 | KEY1
1 | 1 | KEY1
因此fids的顺序从1变为n(在本例中为3),但每行也交替使用k键(本例中为3)
我试过
SELECT id, fid, key
FROM TEST
ORDER BY ROW_NUMBER() OVER ( PARTITION BY fid,key ORDER BY fid,key), fid
但这让我感到很高兴
1 | 1 | KEY1
4 | 1 | KEY2
7 | 1 | KEY3
2 | 2 | KEY1
5 | 2 | KEY2
3 | 3 | KEY1
6 | 3 | KEY2
这与我需要的非常接近,但它给了我每个键的fid值,当我只需要fid去1,2,3每行更改键时。有什么想法吗?