SQL Server - отображать ранг строки в зависимости от столбца - PullRequest
0 голосов
/ 09 мая 2018

У меня есть запрос, который возвращает:

RowNumber     Name
===================================
1             Invoice-02116 (1).pdf
1             Invoice-02116 (2).pdf
1             Invoice-02116.pdf
2             Invoice-02116.pdf
3             Invoice-02116.pdf
4             Invoice-02116.pdf
5             Invoice-02116.pdf

Мне нужно что-то вроде:

RowNumber     Name
===================================
1             Invoice-02116 (1).pdf
2             Invoice-02116 (2).pdf
3             Invoice-02116.pdf
3             Invoice-02116.pdf
3             Invoice-02116.pdf
3             Invoice-02116.pdf
3             Invoice-02116.pdf

Точнее, для отображения ранга в зависимости от имени столбца.

То, что я использую для столбца RowNumber:

SELECT ROW_NUMBER() OVER (PARTITION BY ff.Name ORDER BY ff.Name) AS RowNumber, ff.Name

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Используйте DENSE_RANK с соответствующим заказом:

SELECT
    DENSE_RANK() OVER (ORDER BY LEN(Name) DESC, Name) AS RowNumber, 
    Name
FROM yourTable;

Демо

0 голосов
/ 09 мая 2018

Используйте DENSE_RANK вместо:

SELECT DENSE_RANK() OVER (ORDER BY ff.Name) AS RowNumber... 
...