104: ORDER BY-Elemente müssen in der Auswahlliste angezeigt werden
Fehlermeldung:
Meldung 104, Ebene 16, Status 1, Zeile 1
ORDER BY-Elemente müssen in der Auswahlliste angezeigt werden, wenn die Anweisung einen UNION-, INTERSECT- oder EXCEPT-Operator enthält.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung erscheint, wenn versucht wird, eine Ergebnismenge nach einem Element zu sortieren, welches nicht in der SELECT Liste auftaucht und die Anweisung einen UNION-, INTERSECT-, oder EXCEPT Operator enthält.
Auswirkungen:
Das SQL Statement kann zwar geparst werden, jedoch zur Laufzeit wird der Fehler ausgelöst.
Behebung:
Fehler der Ebene 16 sind Fehler, die vom Anwender hervorgerufen werden. Sie können und müssen vom Anwender korrigiert werden. Entweder muß die ORDER BY Angabe derart modifiziert werden, daß sie nur Spalten enthält, die auch im SELECT referenziert werden, oder die ORDER BY Klausel muß entfernt werden, oder das fragliche Element in der SELECT Liste aufgenommen werden.
Versionen:
Alle Versionen von SQL Server.
Beispiele:
SELECT OrderID, EmployeeID
FROM Northwind.dbo.Orders
WHERE CustomerID = 'ALFKI'
UNION ALL
SELECT OrderID, EmployeeID
FROM Northwind.dbo.Orders
WHERE CustomerID != 'ALFKI'
ORDER BY OrderDate
Anmerkungen:
Im obigen Beispiel wird versucht, nach der Spalte OrderDate zu sortieren. Da diese aber nicht in der SELECT Liste auftaucht, wird der Fehler ausgelöst.