Hallo,
das Ergebnis folgender SQL-Scripts sollte eigentlich äquivalent sein:
aus der Tabelle myTable, die die Spalten id (NUMERIC) und wert (NUMERIC) enthält, soll die id selektiert werden und in der Ausgabe jeder id eine Zufallszahl Sort zugeordnet werden.
Das Ergebnis soll anschließend nach Sort geordnet werden.
Nun habe ich festgestellt, dass Script 1 die Ausgabe nicht nach der Spalte Sort sortiert, während Script 2 und Script 3 die Ausgabe sehr wohl sortieren.
Anscheinend ist es so, dass die Sortierung nur dann durchgeführt wird, wenn eine Operation mit dem Ergebnis von Rand() und einer Spalte erfolgt.
Wer weiß, warum das so ist?
Gruß,
Nina
P.S.: Ich kann die Scripts nicht auf einer Datenbank laufen lassen, da ich diese Woche nur auf Access zugreifen kann (und dieses kein Rand() unterstützt).
Script 1:
SELECT id, Rand() AS Sort
FROM myTable
ORDER BY Sort
Script 2:
SELECT id, 0*id+Rand() AS Sort
FROM myTable
ORDER BY Sort
Script 3:
SELECT id, 0*wert+Rand() AS Sort
FROM myTable
ORDER BY Sort