/ / SQL सर्वर - कॉलम के आधार पर पंक्ति का प्रदर्शन रैंक - sql, sql-server, tsql, sql-server-2014

एसक्यूएल सर्वर - स्तंभ - एसक्यूएल, एसक्यूएल-सर्वर, tsql, sql-server-2014 के आधार पर पंक्ति का प्रदर्शन रैंक

मेरे पास एक क्वेरी है जो वापस आती है:

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

नाम कॉलम के आधार पर रैंक प्रदर्शित करने के लिए और अधिक सटीक रूप से।

मैं रोवनंबर कॉलम के लिए क्या उपयोग कर रहा हूं:

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

उत्तर:

जवाब के लिए 3 № 1

उपयोग DENSE_RANK बजाय :

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

जवाब के लिए 2 № 2

उपयोग DENSE_RANK एक उपयुक्त आदेश के साथ:

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

डेमो