Ich habe eine Tabelle nach 1, 2 Spalten sortiert. Und ich muss die erste Zeile von der obersten Zeile und alle nachfolgenden Zeilen abrufen, während ihre Werte der zweiten Spalte dem Wert der ersten Zeile entsprechen.SQL: Reihenfolge von zwei Spalten und erhalten die ersten Zeilen mit gleichen Werten in der 2. Spalte
F.e I haben Datenabtastwert:
select * from sample
order by ID desc, date desc
ID Date
--- ----
45 NULL
44 NULL
40 01/01/10
35 NULL
32 04/05/08
ich brauche die ersten beiden Reihen (mit id in (45, 44)
) zu erhalten, da 2-nd Reihe Date = NULL
haben.
Wenn ich Datenprobe gehabt hatte:
ID Date
--- ----
45 NULL
44 NULL
40 NULL
35 NULL
32 04/05/08
Ich werde die ersten vier Reihen erhalten müssen (mit id in (45, 44, 40, 35)
).
Ich kann keine Anfrage stellen, um mein Problem zu lösen. Ich habe darüber nachgedacht, row_number()
und rank()
zu verwenden, aber ich kann sie nicht für mich anpassen. Vielen Dank für jede Hilfe!
Versuchen Sie 'Reihenfolge nach Datum, ID asc/decs'. Dies sortiert zuerst nach der zweiten Spalte und dann nach dem ersten (wenn Sie diese zweite Sortierung überhaupt brauchen). – FDavidov
Warum würdest du nicht id = 35 im ersten Fall bekommen? –
ist es einfach Gordon, weil Sie verschiedene Datumsspalte vor 35 '40 01/01/10' haben –