在条目为NULL的地方获取不相等的条目

时间:2018-12-13 16:17:04

标签: python-3.x sqlite

让我们说我们有2张桌子:

table0:| colA | colB |

表1:| colA | colB |

我希望表之间的colB相同的表之间的colA条目不同。这是我正在使用的查询:

SELECT table0.colA FROM table0, table1 WHERE table0.colB = table1.colB AND (table0.colA) <> (table1.colA)

这似乎有效。但是,如果我在两个表中的colA值都为空,该怎么办?

  • 如果colA中一个表的条目为空而不是另一个表的条目,我想认为这是有区别的。

  • 如果colA中两个表的两个条目都为空,则我想这是有区别的。

我该如何检查?我尝试使用isNULL功能,但是当两个条目均为null时,该功能无法正常工作。

1 个答案:

答案 0 :(得分:1)

table0.colA为null或table1.colA为null时,此查询将不选择任何行。 (我不再记得这种解释;随着时间的流逝,它已成为“事实”)。您可以使用SELECT这样的

看到它
SELECT table0.colA, table1.colA,
CASE when table0.colA <> table1.colA then "true" else "false" END result

您需要使用OR条件,例如

WHERE table0.colB = table1.colB 
AND (table0.colA <> table1.colA OR table0.colA is null OR table1.colA is null)

()很重要,以免第一个WHERE子句被“忽略”。我对SQLite3的ISNULL功能不熟悉。