Supponiamo che x
sia una variabile che ha un valore diverso da null
, ad esempio 4, ad esempio. Cosa dovrebbe restituire la seguente espressione?Nella maggior parte delle implementazioni SQL, al contrario dei linguaggi di programmazione standard, perché x! = Null restituisce true?
x != null
In quasi ogni linguaggio di programmazione che abbia mai lavorato con (C#, Javascript, PHP, Python), questa espressione, o un'espressione equivalente in quella lingua, valuta a true
.
Le implementazioni SQL, d'altra parte, sembrano gestirlo in modo completamente diverso. Se uno o entrambi gli operandi dell'operatore di disuguaglianza sono NULL
, verrà restituito NULL
o False
. Questo è fondamentalmente l'opposto del comportamento che la maggior parte dei linguaggi di programmazione utilizza, ed è estremamente non intuitivo per me.
Perché il comportamento in SQL è simile? Che cos'è la logica di database relazionale che fa sì che null
si comporti in modo così diverso rispetto alla programmazione generale?
fa x! = Null funziona in molte implementazioni SQL? Ho sempre usato x non è nullo. –
Perché 'NULL' è sconosciuto. Potrebbe essere 4. Questo è sicuramente un dupe. –
Un modo in cui ho sentito spiegare è che "NULL è uno stato di essere, non un valore". – bluevector