ORDER BY em uma exibição do Sql Server 2008

temos uma visão em nosso banco de dados que tem um ORDER BY nele. Agora, percebo que as visões geralmente não são ordenadas, porque pessoas diferentes podem usá-las para coisas diferentes e querem que elas sejam ordenadas de maneira diferente. Essa visão, no entanto, é usada paraMUITO ESPECÍFICO caso de uso que exige uma certa ordem. (É a classificação da equipe para uma liga de futebol.)

O banco de dados é o Sql Server 2008 Express, v.10.0.1763.0 em uma caixa do Windows Server 2003 R2.

A visão é definida como tal:

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

Ele retorna:

GENDER, TEAMYEAR, CODE, TEAMID, CLUB, NAME,  
WINS, LOSSES, TIES, GOALS_FOR, GOALS_AGAINST,  
DIFFERENTIAL, POINTS, FORFEITS, RANKING

Agora, quando eu corro umSELECIONAR contra a visão, ordena os resultados porGÊNERO, EQUIPE, CÓDIGO, TEAMID. Observe que ele está pedindo porTEAMID ao invés dePONTOS como a ordem por cláusula especifica.

No entanto, se eu copiar a instrução SQL e executá-la exatamente como está em uma nova janela de consulta, ela será solicitada corretamente conforme especificado peloORDENAR POR cláusula.

questionAnswers(7)

yourAnswerToTheQuestion