2009-07-20 16 views
1

Ich werde der erste sein, zuzugeben, dass meine SQL-Fähigkeiten fehlen. Jetzt ...SQL grundlegende Abfrage Frage

Nehmen wir an, wir haben eine Datenbanktabelle namens Posts mit drei Spalten: Id, RootId und DateTime.

Was ich tun möchte, ist die letzte (von DateTime) 20 verschiedene RootId Werte zu bekommen.

Hier ist der Caveat though: RootId kann NULL sein, in diesem Fall sollten wir diesen Datensatz als distinct betrachten, und statt NULL sollte ID zurückgegeben werden.

Was wäre die Abfrage?

Antwort

2

select distinct top 20 isnull(rootid,id) from posts order by datetime desc

dies Unter der Annahme ist für MS SQL Server

+0

isnull (rootID, id) scheint ein wenig seltsam. Warum nicht isnull (rootid, 0)? – JohnFx

+0

Können Sie mir irgendwelche Ideen geben, wie ich meine Anfrage annehmen und sie mental in eine Frage übersetzen kann? Du hast Recht in deiner Antwort. – core

+0

JohnFx - Lesen Sie den ursprünglichen Beitrag. Ich habe geantwortet, wonach gefragt wurde ... – YogoZuno