T-SQL: SQL Server 2000 vs YukonKomentarze
Wyświetl komentarze jako
(Płasko | Wątki)
ok, ale co jesli np. potrzeba zrobic cos takiego
SELECT kolumna as moj_alias FROM tabela t WHERE moj_alias=NULL ORDER BY t.moj_alias pozdrawiam M.C.
Na wstępie uwaga: stosowanie konstrukcji wyrażenie = NULL nie ma żadnego sensu (wyjaśnienie w poście "Imię NULLa").
Jeżeli chodzi o kwestię aliasów: nie można w zapytaniu tego typu odwoływać się do aliasu kolumny w warunku WHERE z jednej prostej przyczyny: na etapie przetwarzania tego warunku SQL Server nie zna jeszcze nazw aliasów. Jeżeli chce się operować aliasami kolumn - trzeba zmusić SQL Server, żeby je przetworzył zanim zostaną zastosowane w filtrze WHERE. Można to zrobić stosując podzapytanie: SELECT moj_alias FROM ( SELECT kolumna as moj_alias FROM tabela ) t WHERE moj_alias IS NULL ORDER BY t.moj_alias W 2005 można też używać CTE (Common Table Expression), kod wyglądałby tak: WITH zapytanie ( moj_alias ) AS ( SELECT kolumna FROM tabela ) SELECT * FROM zapytanie WHERE moj_alias IS NULL ORDER BY moj_alias Pozdrawiam, M.G.
O juz sie przestraszylem, ale sprawdzilem na SQL2005 z sp2 i konstrukcja SELECT
TOP (100) PERCENT * FROM dbo.sl_Panstwo ORDER BY pa_Nazwa dziala bez problemów... ;-) moze to byla kwestia SP lub uzycia Sql server management studio
Nie wiem czemu się przestraszyłeś, bo przecież nie napisałem, że sortowanie w ogóle przestaje działać :) Natomiast napisana przez Ciebie konstrukcja nie zadziała w widoku (CREATE VIEW widok AS ... i tu Twoje zapytanie) - SELECT z widoku nie zwróci posortowanego resultseta.
Pozdrawiam, M.G. |
Kalendarz
KategorieInne blogiArchiwaWrzesień 2008 (0)
Sierpień 2008 (6) Lipiec 2008 (3) Czerwiec 2008 (1) Maj 2008 (0) Kwiecień 2008 (1) Marzec 2008 (4) Luty 2008 (6) Styczeń 2008 (3) Grudzień 2007 (5) Listopad 2007 (7) Październik 2007 (4) Wrzesień 2007 (6) Sierpień 2007 (3) Lipiec 2007 (7) Czerwiec 2007 (6) Maj 2007 (4) Kwiecień 2007 (5) Marzec 2007 (6) Luty 2007 (10) Styczeń 2007 (8) Grudzień 2006 (4) Listopad 2006 (6) Październik 2006 (13) Ostatnie.... Starsze... Ostatnie wpisySQL Server 2008 - czas na hotfixy
czwartek, sierpień 28 2008 Meandry wersji RTM - jak to jest z tym Ctrl+N? poniedziałek, sierpień 18 2008 Ciekawostki MSSQL: estimated execution plan środa, sierpień 13 2008 SQL Server 2008 - capacity and features wtorek, sierpień 12 2008 Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 - pierwsze wrażenie piątek, sierpień 8 2008 Jest SQL Server 2008 RTM czwartek, sierpień 7 2008 Security Update for SQL Server 7.0 - 2005 środa, lipiec 9 2008 Virtual Earth -> Geospatial Data Generator środa, lipiec 9 2008 SQL Server 2008 RTM w przyszłym tygodniu? czwartek, lipiec 3 2008 Oficjalne logo SQL Server 2008 środa, czerwiec 4 2008 SQL Server 2005 SP3 w czwartym kwartale środa, kwiecień 16 2008 V Spotkanie PLSSUG Lublin - Heroes {Community} Launch wtorek, marzec 25 2008 SQL Server 2008: fizyczny lokalizator wiersza czwartek, marzec 20 2008 Szybko, tanio, dobrze piątek, marzec 14 2008 WyszukajLicencja |
|||||||||||||||||||||||||||||||||||||||||||||||||
W jednym z poprzednich postów napisałem, że SQL Server 2005 teoretycznie ignoruje klauzulę sortującą zawartą w definicji widoku, a jedynym prawidłowym i zalecanym miejscem na jej definiowanie jest zewnętrzny SELECT z widoku. Jak można się dom
Przesłany: Paź 20, 00:32