[Oracle] Datensätze zufällig sortieren

Drucken
( 0 Votes ) 
Hauptkategorie: Programmieren Kategorie: SQL
Erstellt am 22.01.2013 Zuletzt aktualisiert am 22.01.2013 Geschrieben von Jonny132
Datensätze in Oracle zu Sortieren ist dank der ORDER BY Angabe kein Problem.
Will man nun jedoch die Daten nicht nach einer gewissen Spalte sortieren, sondern die Datensätze in einer zufälliger Reihenfolge abfragen will, so kann man der ORDER BY Klausel die Oracle-Funktion dbms_random.value übergeben.
Diese Funktion gibt eine zufällige Zahl zurück nach der zu Schluss sortiert wird. 

Beispiel über eine ganze Tabelle:
SELECT * FROM tabelle ORDER BY dbms_random.value;
  
Beispiel die eine bestimmte Anzahl an Datensätze zurückgibt:
select * from (
   SELECT * FROM tabelle ORDER BY dbms_random.value
)where rownum <= 5;

In diesem Beispiel werden fünf zufällige Datensätze aus der Tabelle geholt. Dazu wurde die rownum Spalte verwendet.
Da bei Oracle die WHERE Bedinung immer vor ORDER BY ausgeführt wird, benötigen wir einen Innerselect, damit nicht immer die gleichen 5 Datensätze vermischt zurückgegeben werden.

    Veröffentlichen Sie ihre Kommentare ...