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.
#1
o
2006-11-13 11:18
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
#2
o
2007-10-24 13:25
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. Autor nie zezwolił na komentowanie tego wpisu
|
Kalendarz
KategorieInne blogiOstatnie 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