Zum Inhalt springen

Oracle SQL Random Row Select


Gast Kimonex
 Teilen

Empfohlene Beiträge

Hallo werte Freunde der Bits und Bytes,

ich stehe da vor einem Rätsel und hoffe, dass es hier jemand gibt der bzgl. Oracle Datenbanken weniger betagt ist als ich. :>

Ich habe mir in Java eine Methode erstellt, welche ein bestimmte Spalte eines zufälligen Datensatz einer Tabelle liefert. Der Java Code ist hierbei eigentlich uninteressant, weil der eigentliche Part direkt über das SQL-Statement gehandhabt wird. Es funktioniert soweit auch alles, aber wenn ich den "Bereich der Zufälligkeit" entferne und durch etwas Absolutes ersetze, dann kann das Statement nicht mehr verarbeitet werden.

Zufälliges Statement:

SELECT <column_name> FROM 
(
SELECT <column_name> FROM <table_name>
order by [B]dbms_random.value(0, (SELECT count(*) FROM <table_name>) )[/B]
)
WHERE rownum = 1"

So! Die Funktion dbms_random.value generiert mir ja eine Number in der angegebenen Reichweite. Also sollte ich das Statement auch mit einem absolutem Wert ausführen können oder? Also folgendes:

Absolutes Statement:

SELECT <column_name> FROM 
(
SELECT <column_name> FROM <table_name>
order by [B]200[/B]
)
WHERE rownum = 1"

Letzteres führt zu folgender Fehlermeldung:

ORA-01785: ORDER BY-Angabe muss Positionsnummer von Ausdruck der SELECT-Liste enthalten

](*,)](*,):shock::shock:8(8(:bhof:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Deine Meinung

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Benutzerkonto hast, melde Dich bitte an, um mit Deinem Konto zu schreiben.

Guest
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

  • Vorschau
 Teilen

×
×
  • Neu erstellen...

Wichtige Information

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung.