Das sollte funktionieren:
%Vor%Von MSDN :
In einer Abfrage, die UNION-, EXCEPT- oder INTERSECT-Operatoren verwendet, ORDER BY ist nur am Ende der Aussage erlaubt. Diese Einschränkung gilt nur wenn Sie UNION, EXCEPT und INTERSECT in einer Top-Ebene angeben Abfrage und nicht in einer Unterabfrage .
Bearbeitet : Um die Reihenfolge zu erzwingen, müssen Sie eine ORDER BY
auf die äußere Abfrage anwenden. Ich habe eine Konstante Wert Spalte zu beiden Abfragen hinzugefügt.
Dies ist ein wirklich hacky Weg, dies zu tun. Wahrscheinlich möchten Sie diese als separate Abfragen in der Realität, aber dies sollte Ihnen das gewünschte Ergebnis geben ...
%Vor%UNION mag ORDER by-Klauseln in den UNIONed-Ausdrücken nicht. Versuchen Sie Folgendes:
%Vor%Dies macht den UNION-Operator dazu verleiten, die ORDER BYs zu ignorieren, die immer noch korrekt auf dem TOP-Operator funktionieren. Sie können eine endgültige ORDER BY anwenden, um das UNIONed-Set zu bestellen, wenn Sie möchten.
[Gilt nicht mehr genau für Ihre Frage, nachdem sie bearbeitet wurde!]
Tags und Links sql sql-server tsql