ZAMÓWIENIE BY w widoku Sql Server 2008
mamy widok w naszej bazie danych, który zawiera ORDER BY. Teraz zdaję sobie sprawę, że poglądy na ogół nie są uporządkowane, ponieważ różni ludzie mogą używać go do różnych celów i chcą, aby były inaczej uporządkowane. Ten widok jest jednak używany dla aBARDZO SPECYFICZNY przypadek użycia, który wymaga określonej kolejności. (To jest klasyfikacja drużynowa dla ligi piłkarskiej.)
Baza danych to Sql Server 2008 Express, v.10.0.1763.0 na Windows Server 2003 R2.
Widok jest zdefiniowany jako taki:
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
Powraca:
GENDER, TEAMYEAR, CODE, TEAMID, CLUB, NAME,
WINS, LOSSES, TIES, GOALS_FOR, GOALS_AGAINST,
DIFFERENTIAL, POINTS, FORFEITS, RANKING
Teraz, kiedy biegnęWYBIERZ w stosunku do widoku zamawia wyniki wedługPŁCI, ZESPOŁOWY, KOD, TEAMID. Zwróć uwagę, że zamawia przezTEAMID zamiastZWROTNICA jak określa klauzula kolejności.
Jeśli jednak skopiuję instrukcję SQL i uruchomię ją dokładnie tak, jak w nowym oknie kwerendy, zamawia ona poprawnie zgodnie z poleceniemZAMÓW PRZEZ klauzula.