0 oracle
我的桌子看起来像这样:
ID APPLICATION OTHERVALUE
0001 subapp SubvalueA
0001 mainapp MainValue1
0002 subapp SubvalueB
0002 mainapp MainValue1
0003 subapp SubvalueA
0003 mainapp MainValue2
Run Code Online (Sandbox Code Playgroud)
我需要 的所有行subapp
,但是OtherValue
当应用程序mainapp
来自同一个表且 ID 相同时,我还需要值。我正在使用甲骨文。
如何为此构建查询?
预期结果:
ID APPLICATION OTHERVALUE OTHERVALUE2
0001 subapp SubvalueA MainValue1
0002 subapp SubvalueB MainValue1
0003 subapp SubvalueA MainValue2
Run Code Online (Sandbox Code Playgroud)
您可以使用聚合函数和CASE
语句将数据转换为以下格式:
select id,
max(case when application ='subapp' then application end) application,
max(case when application ='subapp' then othervalue end) othervalue,
max(case when application ='mainapp' then othervalue end) othervalue2
from yourtable
group by id;
Run Code Online (Sandbox Code Playgroud)
结果:
| ID | APPLICATION | OTHERVALUE | OTHERVALUE2 |
-----------------------------------------------
| 1 | subapp | SubvalueA | MainValue1 |
| 2 | subapp | SubvalueB | MainValue1 |
| 3 | subapp | SubvalueA | MainValue2 |
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13961 次 |
最近记录: |