是否可以使用order by选择查询,并因此插入每列位置的新列?
例如我有表:
Name
-------
A
D
D
B
C
B
因此我想有桌子:
Name Position
-------------
A 1
D 4
D 4
B 2
B 2
C 3
感谢您的帮助
答案 0 :(得分:2)
SELECT Name ,
DENSE_RANK() OVER (ORDER BY Name) AS 'Position'
FROM Table
这将产生
Name Position
-------------
A 1
B 2
B 2
C 3
D 4
D 4
因此可能难以保持原始排序
答案 1 :(得分:1)
使用row_number
SELECT name,ROW_NUMBER() OVER(ORDER BY name) as Position
FROM YourTable
答案 2 :(得分:1)
SELECT
Name,
ROW_NUMBER() OVER(ORDER BY Name) AS POSITION
FROM Table_1
答案 3 :(得分:0)
SELECT Name, DENSE_RANK() OVER (ORDER BY Name) AS 'Position'
FROM Table