Analiza kodu - zadanie 1

Jaki będzie rezultat poniższego zapytania?

SELECT CASE
		WHEN NULL = NULL THEN 'True'
		ELSE 'False'
	   END AS Result

Uzasadnij swoją odpowiedź i zaproponuj zapytanie, które dla powyższego warunku zachowa się prawidłowo.

1 odpowiedź

Rezultatem zapytania będzie False. W języku SQL null = null zawsze zwróci 'unknown'. Związane jest to z logiką trójwartościową w języku SQL - true, false, oraz unknown.

Nie możemy określić efektu porównania wartości 0 z wartością pustą (niezdefiniowaną, nieokreśloną), nie określimy także efektu porównania wartości pustej z wartością pustą!

Gdy chcemy sprawdzić czy wartość równa się null, powinniśmy użyć klauzuli IS NULL.
Powyższe zapytanie powinno wyglądać następująco:
SELECT CASE
		WHEN NULL IS NULL THEN 'True'
		ELSE 'False'
	   END AS Result

Rezultat działania: True

Zaloguj się lub zarejestruj by dodać odpowiedź.


© 2018 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci