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
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.
Żadna baza nie jest idealna. Oracle też ma swoje problemy. Który silnik ma większe? Kwestia względna.
Pozdrawiam, M.G. |
Kalendarz
KategorieInne blogiArchiwaListopad 2008 (1)
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) 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) Wrzesień 2006 (6) Ostatnie.... Starsze... Ostatnie wpisy10. spotkanie PLSSUG Lublin
poniedziałek, listopad 10 2008 SQL Server 2010 code name Kilimanjaro wtorek, październik 7 2008 9 spotkanie PLSSUG Lublin - SQL Server 2008 Community Energy Launch wtorek, październik 7 2008 8 Spotkanie PLSSUG Lublin czwartek, wrzesień 11 2008 SQL 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 WyszukajLicencja |
|||||||||||||||||||||||||||||||||||||||||||||||||