如何解决以下场景的输出
有 2 张桌子 T1 和 T2
T1 表中的 view_report 列是空的 在 T2 表中有 6 列,数据如下所示
Q1 Q2 Q3 Q4 Q5 Q6
1 1 1 0 0 0
0 1 0 1 0 0
1 0 0 0 0 0
我想通过检查 T2 表中的所有 5 列数据来填充 view_report 列 就像当 Q1 = 1 那么 A Q2 = 1 然后 B 依此类推
注意:对于所有 6 列,如果不等于 1,则它应该为空
但在第一行,如果我们有 Q1、Q2、Q3 的值为 1,那么我的输出应该是 A、B、C
请帮助我在 Oracle SQL 中解决这个问题
解决方法
我想你想要一个带有标志的列的列表:
select t.*,trim(',' from
(case q1 when 1 then 'A' || ',' end ||
case q2 when 1 then 'B' || ',' end ||
case q3 when 1 then 'C' || ',' end ||
case q4 when 1 then 'D' || ',' end ||
case q5 when 1 then 'E' || ',' end ||
case q6 when 1 then 'F' || ',' end
)
) as view_report
from t;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。