Oracle SQL View:借助外键将多行合并到一行
发布时间:2021-03-15 15:24:15 所属栏目:站长百科 来源:网络整理
导读:我有两张桌子: 表A: pk_id,value 表B: pk_id,key,value,fk_id 例如 表a: 1,value 例如表b: 1,key1,value1,12,key2,value2,13,key3,value3,1 等等,不可能用所有键定义一个表,因为我们从另一个应用程序获取数据并且它并不总是相同并且必然会发生变化. 我
我有两张桌子: 表A: pk_id,value 表B: pk_id,key,value,fk_id 例如 1,value 例如表b: 1,key1,value1,1 2,key2,value2,1 3,key3,value3,1 等等,不可能用所有键定义一个表,因为我们从另一个应用程序获取数据并且它并不总是相同并且必然会发生变化. 我需要的是一个视图(或者如果可能通过其他方式,我也不介意)显示如下数据: id,key3 1,value3 所以与表A中的一行连接的所有内容都显示在一行中.从表B中定义应该在视图中显示的键是可能的. 提前致谢. 解决方法试试这个查询.这会对你有所帮助.SELECT a.pk_id,a.value,MAX(CASE WHEN b.key='key1' THEN b.value ELSE '0' END) AS key1,MAX(CASE WHEN b.key='key2' THEN b.value ELSE '0' END) AS key2,MAX(CASE WHEN b.key='key3' THEN b.value ELSE '0' END) AS key3 FROM table_b b LEFT OUTER JOIN table_a a on a.pk_id = b.fk_id GROUP BY b.fk_id,a.pk_id,a.value ORDER BY b.fk_id ASC (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |