在oracle

时间:2015-12-14 15:42:38

标签: oracle

如何在oracle中从单行创建另一行? 假设,我有一个表CALLTEST。

数据集就像:

call_id   PARENT_CALL   OWNER   ACCOUNT_ID    PARENT_CL_OWNER
C3        P3            O4      HCP2           O5
C2        P2            O3      HCP1           O6

我必须从每个数据创建另一个数据,因此需要生成总共4个数据集。条件是:

    必须使用父级呼叫所有者

    更新
  1. 所有者字段

  2. ACCOUNT_ID需要使用空值更新第二个     记录。

  3. call_id将替换为_1值。
  4. 数据集将是这样的:

    call_id   PARENT_CALL   OWNER   ACCOUNT_ID    PARENT_CL_OWNER
    C3        P3            O5      HCP2           O5
    C3_1      P3            O5                     O6
    C2        P2            O6      HCP1           O6
    C2_1      P2            O6                     O6
    

    所以请帮助确切的sql查询或程序块来实现这个场景。

1 个答案:

答案 0 :(得分:1)

SELECT   call_id,
         parent_call,
         parent_cl_owner owner,
         account_id,
         parent_cl_owner
  FROM   calltest
UNION ALL
SELECT   call_id || '_1',
         parent_call,
         parent_cl_owner,
         NULL,
         parent_cl_owner
  FROM   calltest
ORDER BY   call_id