我有一个这样的主数据表:
tableA
ID | tainfo1 | tainfo2
----------------------
1 | me | 100
2 | you | 200
3 | they | 300
和类似的属性表:
tableB:
ID | type | tbinfo1 | tbinfo2
------------------------------
1 | 1 | good | 7
1 | 2 | bad | 5
2 | 2 | so&so | 6
3 | 1 | awesome | 10
在属性表中我有一小组type
,我想知道是否有机会像这样输出数据。
ID | tainfo1 | tainfo2 | tbinfo1_type1 | tbinfo2_type1 | tbinfo1_type2 | tbinfo2_type2
-----------------------------------------------------------------------------------------
1 | me | 100 | good | 7 | bad | 5
2 | you | 200 | | | so&so | 6
3 | they | 300 | awesome | 10 | |
如果所有属性都存在,所有列都会被填充,就像记录1一样,_typeX
列也会出现空白,就像type1的记录2
我希望问题很明确,
问候。
答案 0 :(得分:1)
加入两个表格和pivot结果:
select *
from (
select id, tainfo1, tainfo2, type, tbinfo1, tbinfo2
from tableA join tableB using (id))
pivot (max(tbinfo1) t1, max(tbinfo2) t2 for type in (1 info1, 2 info2))
输出:
ID TAINFO1 TAINFO2 INFO1_T1 INFO1_T2 INFO2_T1 INFO2_T2
----- ---------- ---------- ---------- ---------- ---------- ----------
1 me 100 good 7 bad 5
2 you 200 so-so 6
3 they 300 awesome 10
这适用于列type
中定义数量的值。此外,{11}版本提供pivot
,旧版本使用max(decode...)
{action: "openURL", url: newURL}
。如果您需要完全动态的解决方案,请阅读文章:here,link1。