考虑下表
--------------------------------
ID | ColA | ColB | ColC
--------------------------------
1 | ABC | |
2 | | XYZ |
3 | PQR | |
4 | MNO | PQR |
我需要获取表的第一个空闲列,其中 ID = 1。我该怎么做
例如:
如果
ID = 1
,下一个空闲列是 ColB
如果 ID = 2
,下一个空闲列是 ColA
如果 ID = 3
,下一个空闲列是 ColB
如果 ID = 4
,下一个空闲列是 ColC
最佳答案
如果您想要列的名称,您可以执行以下操作:
SQL> select id, cola, colb, colc,
2 coalesce(nvl2(cola, '', 'COLA'),
nvl2(colb, '', 'COLB'),
nvl2(colc, '', 'COLC')) first_free_col
3 from tab;
ID COL COL COL FIRST_FREE_COL
---------- --- --- --- --------------------------------
1 ABC COLB
2 XYZ COLA
3 PQR COLB
4 MNO PQR COLC
或案例
SQL> select id, cola, colb, colc,
2 case when cola is null then 'COLA'
3 when colb is null then 'COLB'
4 when colc is null then 'COLC'
5 end first_free_col
6 from tab;
ID COL COL COL FIRST_FREE_COL
---------- --- --- --- --------------------------------
1 ABC COLB
2 XYZ COLA
3 PQR COLB
4 MNO PQR COLC
关于mysql - 如何获取空表的列名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14830487/