ORDER BY en una vista de Sql Server 2008
Tenemos una vista en nuestra base de datos que tiene un ORDEN POR. Ahora, me doy cuenta de que las vistas generalmente no ordenan, porque diferentes personas pueden usarlo para diferentes cosas, y quieren que se ordenen de manera diferente. Sin embargo, esta vista se utiliza para unaMUY ESPECIFICO Caso de uso que exige un cierto orden. (Es la clasificación del equipo para una liga de fútbol.)
La base de datos es Sql Server 2008 Express, v.10.0.1763.0 en una caja de Windows Server 2003 R2.
La vista se define 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
Vuelve:
GENDER, TEAMYEAR, CODE, TEAMID, CLUB, NAME,
WINS, LOSSES, TIES, GOALS_FOR, GOALS_AGAINST,
DIFFERENTIAL, POINTS, FORFEITS, RANKING
Ahora, cuando corro unSELECCIONAR contra la vista, ordena los resultados porGÉNERO, TEAMYEAR, CÓDIGO, TEAMID. Tenga en cuenta que está ordenando porEquipo en lugar dePUNTOS como especifica la cláusula orden por.
Sin embargo, si copio la declaración SQL y la ejecuto exactamente como está en una nueva ventana de consulta, ordena correctamente como lo especifica elORDEN POR cláusula.