【发布时间】:2014-03-12 15:04:17
【问题描述】:
我需要从两个值匹配的两个表中提取数据。连接表产生 5 行,并且总是产生 5 行。
有没有一种方法可以获取具有不同值的一列并在一行中返回多列?
举个例子: 表 A: orig_zip、dest_zip、pri_mode
表 B: orig_zip、dest_zip、serv_comm
在执行如下内部连接时,表 B 将始终为表 A 中的每 1 个结果返回 5 个结果:
SELECT a.orig_zip, a.dest_zip, b.serv_comm, a.pri_mode
FROM A a
INNER JOIN B b
ON a.orig_zip = b.orig_zip and a.dest_zip = b.dest_zip
ORDER BY a.orig_zip, a.dest_zip, b.mail_class;
如何获取 5 个结果,并将它们转换为 oracle 中的一行。结果中唯一不同的字段是 serv_comm 字段。
最后一行应具有以下设置:
[ORIG_ZIP][DEST_ZIP][SERV_COMM1][SERV_COMM2][SERV_COMM3][SERV_COMM4][SERV_COMM5][PRI_MODE]
【问题讨论】:
标签: sql oracle join inner-join