找到NULL值时显示列名称

时间:2012-12-06 19:51:44

标签: sql oracle

我有下表:

Col1    Col2    Col3    Col4    Col5    Col6    Col7
=====================================================
XYZ             GH      JY              IOP 
GH      TY                                      HGF
                TR              OPY     

我想编写一个SQL查询,它将检查每行中的NULL值,并将具有NULL值的列名显示到名为“Missing values”的新列中。

所以输出看起来像:

Missing Value 
=============
Col2,Col5,Col7
Col3,Col4,Col5,Col6
Col1,Col2,Col4,Col6,Col7

2 个答案:

答案 0 :(得分:1)

结构应该有效

select decode( col1, null, 'col1 ' ) 
|| decode( col2, null, 'col2 ' )
|| decode( col3, null, 'col3 ' ) 
from mytable

答案 1 :(得分:1)

如果您希望结果以逗号分隔,您可以尝试使用@ Randy的答案:

SELECT
    SUBSTR
    (
        DECODE(COL1, NULL, ',COL1')
        ||
        DECODE(COL2, NULL, ',COL2')
        ||
        DECODE(COL3, NULL, ',COL3')
        ||
        DECODE(COL4, NULL, ',COL4'),
        2
    )
FROM
    YOUR_TABLE