有没有办法使用另一列作为过滤器和另一列作为 SQL 上的值输入来创建一个新列?

Is there a way to create a new column using another column as a filter and a further column as the value inputs on SQL?

提问人:Milkrash 提问时间:10/24/2023 最后编辑:Milkrash 更新时间:10/24/2023 访问量:42

问:

从本质上讲,我有一个在 Oracle SQL 上生成的表:

水平 名字 国内生产总值 EXP BC公司 经验 CC
B AFF_B_BCORE 88956.83 67063.51 15136.50
C AFF_C_CCORE 84858.36 0 0
J AFF_J_CCORE 78115.38 77177.73 23501.13
B AFF_OTHER 12740.93 0 0
C AFF_OTHER 11121.93 0 0
J AFF_OTHER 15762.48 0 0

但是我想创建一个列来组合与列名称相关的 NAME 和 GDP,即。GDP_B_BCORE,GDP_C_CCORE相应GDP的值。同样适用于 EXP BC 和 EXP CC。

我尝试过 CASE 和 SUM(CASE 无济于事。

我希望我的输出是这样的:

GDP_B_BCORE GDP_C_CCore GDP_J_JCORE EXP BC公司 经验 CC 经验 JC
88956.83 84858.36 78115.38 67063.51 15136.50 77177.73

像这样的东西。

Oracle 转置

评论

2赞 SelVazi 10/24/2023
请编辑您的问题并将预期输出共享为文本,并共享您到目前为止尝试过的查询
0赞 SelVazi 10/24/2023
为什么我不应该上传代码/数据/错误的图片?
0赞 DustInComp 10/24/2023
这会有帮助吗?oracletutorial.com/oracle-basics/oracle-pivot
0赞 JNevill 10/24/2023
价值怎么了?是否过滤掉了 in 中的值?如果向数据添加,结果是否应该扩展为再包含 2 或 3 列,会发生什么情况?我想,我的问题来自这里:我看到 10 个非 0 值,但您想要的结果包含 6 个。为什么?23501.13AFF_OTHERNAMEAFF_K_CCORE
0赞 Milkrash 10/24/2023
嗨,JNevill,77000 值包含 23501.13,因此由于重复,它将被忽略。AFF_OTHER有自己的过滤器,但现在我专注于主要目标。最终,是的,它将扩展以适应其他列,但目前它不是优先事项,因为我认为它将是相同的方法。0 值是由于数据集中的先前筛选器造成的。编辑:我已经修改了表格,以便过滤器更清晰

答: 暂无答案