ORDER BY in einer SQL Server 2008-Ansicht
Wir haben eine Ansicht in unserer Datenbank, die ein ORDER BY enthält. Jetzt ist mir klar, dass Ansichten im Allgemeinen nicht geordnet sind, weil verschiedene Leute sie für verschiedene Dinge verwenden können und wollen, dass sie unterschiedlich geordnet sind. Diese Ansicht wird jedoch für a verwendetSEHR SPEZIFISCH Anwendungsfall, der eine bestimmte Reihenfolge erfordert. (Es ist Teamwertung für eine Fußballliga.)
Die Datenbank ist SQL Server 2008 Express, Version 10.0.1763.0 auf einem Windows Server 2003 R2-Computer.
Die Ansicht ist wie folgt definiert:
CREATE VIEW season.CurrentStandingsOrdered
AS
SELECT TOP 100 PERCENT *, season.GetRanking(TEAMID) RANKING
FROM season.CurrentStandings
ORDER BY
GENDER, TEAMYEAR, CODE, POINTS DESC,
FORFEITS, GOALS_AGAINST, GOALS_FOR DESC,
DIFFERENTIAL, RANKING
Es gibt zurück:
GENDER, TEAMYEAR, CODE, TEAMID, CLUB, NAME,
WINS, LOSSES, TIES, GOALS_FOR, GOALS_AGAINST,
DIFFERENTIAL, POINTS, FORFEITS, RANKING
Nun, wenn ich eineWÄHLEN Entgegen der Ansicht ordnet es die Ergebnisse nachGESCHLECHT, TEAMJAHR, CODE, TEAMID. Beachten Sie, dass es von bestelltTEAMID anstattPUNKTE wie in der order by-Klausel angegeben.
Wenn ich jedoch die SQL-Anweisung kopiere und sie so ausführe, wie sie sich in einem neuen Abfragefenster befindet, werden die Anweisungen in der angegebenen Reihenfolge korrekt ausgeführtSORTIEREN NACH Klausel.