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ń 2010 (0)
Sierpień 2010 (0) Lipiec 2010 (0) Czerwiec 2010 (0) Maj 2010 (0) Kwiecień 2010 (0) Marzec 2010 (0) Luty 2010 (0) Styczeń 2010 (0) Grudzień 2009 (0) Listopad 2009 (0) Październik 2009 (0) Wrzesień 2009 (2) Sierpień 2009 (0) Lipiec 2009 (0) Czerwiec 2009 (1) Maj 2009 (0) Kwiecień 2009 (1) Marzec 2009 (2) Luty 2009 (4) Styczeń 2009 (1) Grudzień 2008 (4) Listopad 2008 (2) Październik 2008 (2) Wrzesień 2008 (1) 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) Ostatnie.... Starsze... Ostatnie wpisyPo 17. spotkaniu PLSSUG Lublin
czwartek, wrzesień 17 2009 Mac OS X Snow Leopard - pierwsze wrażenia niedziela, wrzesień 13 2009 PLSSUG Lublin: wakacyjna przerwa w spotkaniach niedziela, czerwiec 7 2009 15. spotkanie PLSSUG Lublin piątek, kwiecień 17 2009 SQL Server Standard 64bit - czy dziś znów się wyłoży? sobota, marzec 28 2009 14. spotkanie PLSSUG Lublin i kilka słów o grupie czwartek, marzec 5 2009 SQL Server 2008 Service Pack 1 CTP środa, luty 25 2009 SQL Server 2008 System Views Map niedziela, luty 15 2009 13. spotkanie PLSSUG Lublin czwartek, luty 12 2009 Windows 7 - co powie ryba niedziela, luty 8 2009 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