Voici comment traiter la valeur null
tous les systèmes SGBDR.
null
a une signification particulière - quelque chose comme not defined
Lorsque vous vérifiez:
COL1 NOT IN ('reversed')
les comparaisons suivantes seront:
(null) != reversed
active != reversed
...
et seuls ceux qui reviennent true
seront retourné:
scala> spark.sql("SELECT 'active' != 'reversed'").show
+-------------------------+
|(NOT (active = reversed))|
+-------------------------+
| true|
+-------------------------+
scala> spark.sql("SELECT null != 'reversed'").show
+---------------------------------------+
|(NOT (CAST(NULL AS STRING) = reversed))|
+---------------------------------------+
| null|
+---------------------------------------+
comme vous pouvez le voir: (null) != 'reversed'
ne retourne pas true
- c'est pourquoi vous ne le voyez pas dans le jeu de résultats
De plus: A cause de cela, nous avons
scala> spark.sql("SELECT (null) = 'reversed'").show
+---------------------------------+
|(CAST(NULL AS STRING) = reversed)|
+---------------------------------+
| null|
+---------------------------------+
IS NULL
, IS NOT NULL
, COALESCE
, etc méthodes et fonctions, qui nous permettent de travailler avec NULL
valeurs
Merci pour la clarification! Ça m'a aidé. – Neena