Ciekawostki MSSQL: przemienność koniunkcji w warunku WHEREŚlady
Użyj tego linku jeśli chcesz stworzyć Ślad (Trackback) do tego wpisu
Brak Śladów
Komentarze
Wyświetl komentarze jako
(Płasko | Wątki)
hmmm...
ale czy to nie dlatego że SQL server próbuje przekonwertować int na varchar? teoretycznie takie zapytanie nie jest poprawne, gdyż próbuje poównać int z varchar, więc de facto powinien być błąd w obu przypadkach... pozdrawiam
#1
o
2007-10-17 18:00
Witam,
Nie, to nie dlatego. Konwersja int na varchar powiedzie się zawsze. W problematycznym zapytaniu procesor kwerend próbuje konwertować varchar na int, gdyż typ danych int ma wyższą precedencję. Nie jestem przekonany, że błąd powinien pojawić się w obydwu przypadkach, w jednym z nich oznaczałoby to wykonywanie nadmiarowych czynności, które tylko pogorszyłyby wynik zapytania (a w sumie jest on możliwy do zwrócenia). Ważne jest, by programiści mieli świadomość niebezpieczeństw związanych z niejawnymi konwersjami. Ale to dyskusja trochę poza tematem postu, gdzie chciałem pokazać, że technicznie rzecz biorąc zmiana kolejności wyrażeń w warunku WHERE daje zupełnie różne rezultaty. Pozdrawiam i dziękuje za wyrażenie swojej opinii, M.G.
dlatego ze to MS???
w oracle nie ma takich problemow... :)
#2
o
2007-12-12 21:48
Żadna baza nie jest idealna. Oracle też ma swoje problemy. Który silnik ma większe? Kwestia względna.
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 |
|||||||||||||||||||||||||||||||||||||||||||||||||