SkillsTest.pl SQL pytania i zadania rekrutacyjne Analiza kodu - zadanie 1

: 2017-10-25 | Nr 21 z 24

Analiza kodu

Analiza kodu - zadanie 1 SQL

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.

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

Polecamy

Na co możesz wydać swoje 15k?

Zabawki dla dwulatka