У нас есть представление в нашей базе данных, в которой есть ORDER BY. Теперь я понимаю, что взгляды вообще не заказывают, потому что разные люди могут использовать его для разных вещей и хотят, чтобы он был по-разному заказан. Однако этот взгляд используется для специального использования , который требует определенного порядка. (Это командная таблица для футбольной лиги.)ORDER BY в представлении Sql Server 2008
База данных Sql Server 2008 Express, v.10.0.1763.0 в поле Windows Server 2003 R2.
мнение определяется как таковую:
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
возвращает:
GENDER, TEAMYEAR, CODE, TEAMID, CLUB, NAME,
WINS, LOSSES, TIES, GOALS_FOR, GOALS_AGAINST,
DIFFERENTIAL, POINTS, FORFEITS, RANKING
Теперь, когда я запустить ВЫБРАТЬ против точки зрения, упорядочивает результаты по ПОЛУ, TEAMYEAR , CODE, TEAMID. Обратите внимание, что он заказывает TEAMID вместо POINTS как указано в заказе by.
Однако, если я скопирую инструкцию SQL и запускаю ее точно так, как она есть в новом окне запроса, она правильно упорядочивается, как указано в предложении ORDER BY.
Это раздражает! Я могу видеть/понимать, не гарантируя его в VIEW, вроде ... но он должен хотя бы работать в функции, ориентированной на таблицу. GRRR. Спасибо за ответ в любом случае. :) – eidylon