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.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage