2017-12-12 12 views
1

Ich möchte ORDER BY eine ganze Zahl gefolgt von einer Zeichenfolge, aber zusammen zu halten und Reihenfolge gleich Zeichenketten.SQL Server: Reihenfolge nach 1. Spalte Gruppierung und Bestellung 2. Spalte

Beispiel:

[01] 01 | N9 
[02] 02 | C4 
[03] 03 | C5 
[04] 04 | N9 
[05] 07 | C5 
[06] 08 | C5 
[07] 15 | U1 
[08] 15 | D2 
[09] 16 | N9 
[10] 18 | N9 

gewünschte Reihenfolge:

[01] 01 | N9 
[04] 04 | N9 
[09] 16 | N9 
[10] 18 | N9 
[02] 02 | C4 
[03] 03 | C5 
[05] 07 | C5 
[06] 08 | C5 
[08] 15 | D2 
[07] 15 | U1 

Ich habe versucht RANK und ROW_NUMBER, aber ich habe nicht eine richtige Lösung

Antwort

1

Sie scheint zu wollen, finden:

select e.* 
from example e 
order by min(col2) over (partition by col3), col3, col2; 
+0

Thk. Es klappt! Beide Lösungen geben mir das gewünschte Ergebnis, aber in einem sehr großen Array, ich denke, der zweite versichert mir, dass Integer im Crescendo sein wird. –

1

Sie könnten auch versuchen

select * from <table> order by min(col2) over (partition by col3 order by col2) 
Verwandte Themen