+----+-----+-----+-----+-----+-----+
| t1 | s1 | s2 | s3 | s4 | s5 |
+----+-----+-----+-----+-----+-----+
| 1 | 0 | 1 | 0 | 0 | 2 |
|----|-----|-----|-----|-----|-----|
| 2 | 1 | 0 | 0 | 1 | 2 |
+----+-----+-----+-----+-----+-----+
如何获取列名。其值为0.
答案 0 :(得分:3)
我认为,您正在尝试获取具有所有行0的列/字段名称,或者其所有值都为0的列/字段名称。例如:在您的情况下为列s3。
获取该列的一种可能方法如下: 您首先找到每列的总和。现在,如果列的所有值都为0,则此列的总和将为零。完成后,使用“if”条件仅返回总和为0的列。如果有多个列,也可以使用“concat_ws”以逗号分隔这些列。所以,这是查询。另外,让我再次画桌子。你绘制的方式有点令人困惑。
您的表名是t1。它有五列s1,s2,s3,s4,s5和总共两行。你希望找到s3,它的所有值都是0.
# Table t1 #
s1 s2 s3 s4 s5
0 1 0 0 1
1 0 0 1 0
选择concat_ws(',',if(sum(s1)= 0,'s1',null),if(sum(s2)= 0,'s2',null),if(sum(s3) )= 0,'s3',null),if(sum(s4)= 0,'s4',null),if(sum(s5)= 0,'s5',null))为t1的empty_column; 强>