SQLite/SQLAlchemy:检查多个列的值是否为NULL或相同



我想检查几个列:对于每一列,值要么是NULL,要么是所有记录的值相同。

例如,条件适用于下表

+------+------+------+------+
| Col1 | Col2 | Col3 | Col4 |
+------+------+------+------+
| A    | B    | NULL | NULL |
| NULL | B    | C    | NULL |
| A    | B    | C    | NULL |
+------+------+------+------+

我如何才能做到这一点,最好是使用一个查询?

编辑:
另一个问题是:如何对每个选定列的不同值求和

您可以检查每一列中不同数量的值是否小于或等于1:

SELECT COUNT(DISTINCT Col1) <= 1 ok1,
COUNT(DISTINCT Col2) <= 1 ok2,
COUNT(DISTINCT Col3) <= 1 ok3,
COUNT(DISTINCT Col4) <= 1 ok4
FROM tablename; 

或者,您可以得到整个表格的结果:

SELECT MAX(
COUNT(DISTINCT Col1),
COUNT(DISTINCT Col2),
COUNT(DISTINCT Col3),
COUNT(DISTINCT Col4)
) <= 1 ok  
FROM tablename;

请参阅演示

最新更新