In eine SQL Select Statement eine zufaellige Menge an Zeilen zurueckliefern

Wenn man aus einem Pool von x Zeilen, die ein Select-Statement zurückliefert, eine zufällige Auswahl an Zeilen habe möchte geht das ganz einfach so:

SELECT TOP 5 NEWID() AS randomNumber, * FROM [MyTable] ORDER BY 1

In diesem SQL-Statement wird einfach eine Guid erzeugt und das Resultset nach dieser zusätzlichen Spalte sortiert. Durch die Anweisung TOP 5 werden dann auch nur die ersten fünf Zeilen im Resultset aufgeführt.

Schon ist es vollbracht!

Alternativ - und wie ich auch gerade festgestellt habe der von Microsoft vorgeschlagene Weg - kann man auch folgenden Befehl nutzen

SELECT TOP 5 * FROM [MyTable] ORDER BY NEWID()

Vorteil: Die zusätzliche Spalte randomNumber wird nicht mit in das Resultset aufgenommen und ich persönlich finde es auch etwas eleganter :)

Kommentar schreiben