In SQL werden alle logischen Operatoren mit TRUE, FALSE und UNKNOWN (Oracle docs) in MySQL ausgewertet UNKNOWN-Ergebnisaufrufe NULL (MySQL docs).
Laut Oracle-Dokumentation:
„für NULL-Werte zu testen, verwenden Sie nur die Vergleichsbedingungen IS NULL und IS NOT NULL Wenn Sie einen anderen Zustand mit Nullen verwenden und das Ergebnis auf dem Wert abhängt. von der Null, dann ist das Ergebnis UNBEKANNT. "
Also nur TRUE, FALSE und UNKNOWN können nach der Auswertung zurückgegeben werden.
Über Ihre Frage:
"Kann eine WHERE-Klausel return NULL statt WAHR oder FALSCH" Streng
in Oracle sprechen - NO, weil das ein solches Ergebnis UNKNOWN genannt.
Aber im Allgemeinen ist die Bedeutung von UNKNOWN und NULL in diesem Kontext äquivalent und es ist nur ein anderer Name für die gleiche Sache. Also das Beispiel von SQL unten (a.a >= all
) ausgewertet als UNBEKANNT.
with table_a as (
select null as a from dual
union all
select 10 as a from dual
union all
select 5 as a from dual),
table_b as (
select null as a from dual
union all
select 10 as a from dual
union all
select 5 as a from dual)
select * from table_a a where a.a >= all(select a from table_b b)
Die richtige Antwort lautet D. Siehe hier: https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements005.htm –
So ein NULL == NULL 'würde" UNBEKANNT "zurückgeben. Recht? –
@SuhasK Laut ihrem Dokument ja. –