SQL упорядочить и вставить в каждую позицию номер строки - PullRequest
2 голосов
/ 03 мая 2011

Возможно ли иметь запрос на выборку по порядку и в результате вставить новый столбец с позицией каждой строки?

например у меня есть таблица:

Name
-------
A
D
D
B
C
B

и в результате я хотел бы иметь таблицу:

Name Position
-------------
A 1
D 4
D 4
B 2
B 2
C 3

спасибо за любую помощь

Ответы [ 4 ]

2 голосов
/ 03 мая 2011

Использовать DENSE_RANK

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 голос
/ 03 мая 2011
SELECT 
    Name, 
    ROW_NUMBER() OVER(ORDER BY Name) AS POSITION 
FROM Table_1
1 голос
/ 03 мая 2011

использовать row_number

SELECT name,ROW_NUMBER() OVER(ORDER BY name) as Position
 FROM YourTable
0 голосов
/ 03 мая 2011
SELECT Name, DENSE_RANK() OVER (ORDER BY Name) AS 'Position' 
FROM Table
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...