首页 > 解决方案 > 选择语句中的重复数据

问题描述

我想对程序进行压力测试,而不是生成 .csv 文件。问题是我没有足够的数据,所以我想在我的 sql select 中复制数据。

查询如下所示:

SELECT P.FST_NAME,
           P.LAST_NAME,
           P.EMAIL_ADDR,
           P.PERSON_UID,
           PR.FST_NAME PRSP_FST_NAME,
           PR.LAST_NAME PRSP_LAST_NAME, 
           M.X_BAPRO_DT_01,
           M.X_BAPRO_DT_02,
           M.X_BAPRO_DT_03,
           M.X_BAPRO_MONTO,
           M.X_BAPRO_NUM_01,
           M.X_BAPRO_NUM_02,
           M.X_BAPRO_NUM_03,
           M.X_BAPRO_TEXT_01,
           M.X_BAPRO_TEXT_02,
           M.X_BAPRO_TEXT_03,
           M.X_BAPRO_TEXT_04,
           M.X_BAPRO_TEXT_05
    FROM SIEBEL.S_SRC C 
    left join SIEBEL.S_CAMP_CON M on C.ROW_ID = M.SRC_ID
    left join SIEBEL.S_DMND_CRTN_PRG T on T.ROW_ID = M.DCP_ID
    left join SIEBEL.S_CONTACT P on P.ROW_ID = M.CON_PER_ID
    left join SIEBEL.S_PRSP_CONTACT PR on PR.ROW_ID= M.PRSP_CON_PER_ID 
    WHERE 
      C.ROW_ID <> p_row_id

所以,这个查询返回大约 100 条记录,我想检索 1000 条记录,我真的不在乎数据是否重复。

标签: sqloracle-sqldeveloper

解决方案


您可以添加一个cross join

FROM SIEBEL.S_SRC C 
    left join SIEBEL.S_CAMP_CON M on C.ROW_ID = M.SRC_ID
    left join SIEBEL.S_DMND_CRTN_PRG T on T.ROW_ID = M.DCP_ID
    left join SIEBEL.S_CONTACT P on P.ROW_ID = M.CON_PER_ID
    left join SIEBEL.S_PRSP_CONTACT PR on PR.ROW_ID= M.PRSP_CON_PER_ID 
    cross join (select 1 as n from dual union all
                select 2 from dual
                . . .
               ) x

推荐阅读