sql - 以下场景的输出
问题描述
有 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,那么它应该为 null
但在第一行,如果我们有 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;
推荐阅读
- excel - 使用“with 语句”在不同的工作表上运行 vba
- php - 如何在每个页面而不是作为一个应用程序中使用 Facebook API
- javascript - 有没有办法给变量(数字)添加原型,并且原型可以改变变量本身?
- python - 如何在 url 中使用字段值而不是 pk?
- javascript - 如何使用 React Scrollbars 获取在垂直滚动期间滚动到视图中的 React 组件的引用或信息?
- r - R tibble:按 A 列分组,仅保留 B 列和 C 列中的不同值,以及 C 列中的总和值
- vue.js - 如何使用 Vue-SweetAlert2 在一个弹出窗口中验证多个用户输入
- angular - 在没有角度的 service.ts 的两个模块中的两个组件之间传递数据
- reactjs - 如何在我的 React 应用程序中跟踪 Google Adwords 转化?
- javascript - 为什么映射过滤的对象数组不使用反应呈现?