In SQL, tutti gli operatori logici valutano TRUE, FALSE e SCONOSCIUTO (Oracle docs) in RISULTATO SCONOSCIUTO MySQL chiama NULL (MySQL docs).
Secondo la documentazione di Oracle:
"per verificare i valori nulli, utilizzare solo le condizioni di confronto è nullo ed è NOT NULL Se si utilizza qualsiasi altra condizione con valori null e il risultato dipende dal valore. del nulla, quindi il risultato è SCONOSCIUTO. "
Quindi solo VERO, FALSO e SCONOSCIUTO possono essere restituiti dopo la valutazione.
Circa la tua domanda:
"? Può una WHERE ritorno clausola di NULL al posto di VERO o FALSO"
A rigor di termini in Oracle - NO perché il risultato del genere chiamato UNKNOWN.
Ma in generale il significato di UNKNOWN e NULL è equivalente in questo contesto ed è solo un nome diverso per la stessa cosa. Quindi l'esempio di SQL di seguito (a.a >= all
) valutato come UNKNOWN.
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)
fonte
2016-01-07 05:42:31
La risposta corretta è D. Vedi qui: https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements005.htm –
Quindi un 'NULL == NULL 'restituire 'UNKNOWN'. Destra? –
@SuhasK Secondo il loro documento, sì. –