4112: Für die "%1!"-Rangfolgefunktion ist eine ORDER BY-Klausel erforderlich.
Fehlermeldung:
Meldung 4112, Ebene 15, Status 1, Zeile 1
Für die "%1!"-Rangfolgefunktion ist eine ORDER BY-Klausel erforderlich.
Ebene:
15.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht eine Fensterfunktion ohne ORDER BY Klausel zu verwenden, jedoch diese obligatorisch für die Fensterfunktion ist.
Auswirkungen:
Das SQL Statement kann nicht geparst werden. Die weitere Ausführung wird abgebrochen.
Behebung:
Fehler der Ebene 15 sind Fehler, die vom Anwender hervorgerufen werden. Sie können und müssen vom Anwender korrigiert werden. Das Statement kann so nicht ausgeführt werden. Es muss eine ORDER BY Klausel eingefügt werden.
Versionen:
Diese Fehlermeldung wurde mit SQL Server 2005 eingeführt.
Beispiele:
USE tempdb;
GO
IF OBJECT_ID('tempdb..#t') > 0
DROP TABLE #t
GO
CREATE TABLE #t
(
id INT
)
INSERT INTO #t SELECT 10
GO
SELECT ROW_NUMBER() OVER() AS rid, id
FROM #t
GROUP BY id
Anmerkungen:
Im obigen Beispiel wird versucht die ROW_NUMBER() Fensterfunktion ohne ORDER BY Klausel im OVER() Teil zu verwenden. Dies löst den Fehler aus.