我的表格如下:
ID Col1 Col2 Col3
A 0 1 0
B 1 0 1
C 1 0 1
我想要值为1的列的名称,结果应如下所示:
ID ColName
A Col2
B Col1,Col3
C Col1,Col2
请告知我如何获得结果。 谢谢!
答案 0 :(得分:2)
您可以通过将值连接在一起来完成此操作。这是一种方法:
select id,
concat( (case when col1 = 1 then 'col1;' else ''),
(case when col2 = 1 then 'col2;' else ''),
(case when col3 = 1 then 'col3;' else '')
)
from t;
这是通用SQL(实际上是ANSI标准)。具体细节可能非常依赖数据库,但这应该给你一般的想法。
答案 1 :(得分:1)
如果是 ORACLE
数据库,
SELECT ID
, RTRIM (
DECODE(COL1, 1, 'COL1, ', '')
|| DECODE(COL2, 1, 'COL2, ', '')
|| DECODE(COL3, 1, 'COL3 ', '')
, ',')AS ColName
FROM MY_TABLE