2016-04-04 14 views
0

Ich brauche Zeilennummer 1,2,3,4,5 als neue Spalte in folgenden Screenshot ..hinzufügen Zeilennummer als neue Spalte in SQL Server

enter image description here

Abfrage:

Select 
    ROW_NUMBER() OVER (ORDER BY vgid) AS RowNumber, 
    * 
from 
    T_EMS_VGDM_RULEMST 
where 
    VGID in (156, 157, 158, 159, 165) 
order by 
    CASE 
     WHEN VGID = 165 then 1  
     WHEN VGID = 158 then 2 
     WHEN VGID = 159 then 3 
     WHEN VGID = 157 then 4 
     WHEN VGID = 156 then 5 
    END 

Bitte vorschlagen

+0

Ich habe Frage mit ROW_Number ändern, aber das Ergebnis ist nicht korrekt –

+0

aah. ja es funktioniert mit desc ... danke –

+0

'(ORDER BY vgid DESC)' versucht? –

Antwort

2

es ist nicht einfach:

Select 
    ROW_NUMBER() OVER (ORDER BY CASE 
            WHEN VGID = 165 then 1  
            WHEN VGID = 158 then 2 
            WHEN VGID = 159 then 3 
            WHEN VGID = 157 then 4 
            WHEN VGID = 156 then 5 
           END) AS RowNumber 
    , * 
    from T_EMS_VGDM_RULEMST 
    where VGID in (156,157,158,159,165) 
    ORDER BY CASE 
    WHEN VGID = 165 then 1  
    WHEN VGID = 158 then 2 
    WHEN VGID = 159 then 3 
    WHEN VGID = 157 then 4 
    WHEN VGID = 156 then 5 
    END 
+0

Danke, es funktioniert. Auch können wir Reihenfolge von wo Zustand vermeiden. –

+0

Die Reihenfolge ist keine Bedingung. Meiner Erfahrung nach, wenn Sie eine Zeilennummer generieren, folgt die Ausgabe der Bestellung, aber ohne eine Bestellung von gibt es keine Garantie – HoneyBadger

+0

Ja ... richtig ... danke –

1
Select 

ROW_NUMBER() OVER (ORDER BY vgid desc) AS RowNumber, 
* from T_EMS_VGDM_RULEMST where VGID in (156,157,158,159,165) 
ORDER BY CASE 
WHEN VGID = 165 then 1  
WHEN VGID = 158 then 2 
WHEN VGID = 159 then 3 
WHEN VGID = 157 then 4 
WHEN VGID = 156 then 5 
END 
Verwandte Themen