Utworzyłem zapytanie SQL zawierające sortowanie rekordów i na jego podstawie próbuję utworzyć widok, lecz otrzymuję komunikat błędu "The ORDER BY clause is invalid in views (...)".
Utworzyłem zapytanie SQL zawierające sortowanie rekordów i na jego podstawie próbuję utworzyć widok, lecz otrzymuję komunikat błędu "The ORDER BY clause is invalid in views (...)".
Generalnie w widokach nie możemy stosować ORDER BY. Natomiast istnieje sprytne obejście tego problemu. Otóż klauzula TOP, która służy do zwracania określonej ilości rekordów, ma możliwość procentowego podania ilości. Czyli wystarczy podać 100%, aby pobrać cały zbiór danych i w ten sposób obejść problem.
Przykład:
CREATE VIEW vw_IloscUrodzen AS SELECT TOP(100) PERCENT YEAR(Birthday) as [Rok urodzenia], COUNT(*) as [Ilosc dzieci] FROM [HumanResources].[Employee] GROUP BY YEAR(Birthday) ORDER BY [Rok urodzenia]