oracle with as 用法 和 wm_concat 用法

来源:互联网 发布:雅思是什么 知乎 编辑:程序博客网 时间:2024/05/29 18:02
<pre name="code" class="sql">with tmp_0042 as (    SELECT rownum as rn,F003D_0042, F008V_0042,F007N_0042,F006B_0042,OB_RECTIME_0042,OB_TEXTID_0042,F002D_0042,F004V_0042     FROM TB_TEXT_0042     WHERE TO_CHAR(OB_RECTIME_0042, 'yyyy-MM-dd') = '2013-01-04'     )--select * from tmp_0042SELECT E.rn,D.*, E.F006B_0042FROM    (SELECT F003D_0042,F008V_0042,F007N_0042,OB_RECTIME_0042,OB_TEXTID_0042,F002D_0042,F004V_0042,B.OB_SECCODE_0045,C.OB_SORTCODE_0043     FROM tmp_0042 A,(select OB_TEXTID_0045, WM_CONCAT(OB_SECCODE_0045) OB_SECCODE_0045                      from TB_TEXT_0045 t0045, tmp_0042 t0042                      where t0042.OB_TEXTID_0042=t0045.OB_TEXTID_0045                      and F001V_0045 IN ('QDII','LOF','ETF','老基金','开放式基金','封闭式基金')                      group by OB_TEXTID_0045) B,(select OB_TEXTID_0043, WM_CONCAT(OB_SORTCODE_0043)OB_SORTCODE_0043                                                  from TB_TEXT_0043 t0043, tmp_0042 t0042                                                  where t0042.OB_TEXTID_0042=t0043.OB_TEXTID_0043                                                  group by OB_TEXTID_0043) C    WHERE A.OB_TEXTID_0042=B.OB_TEXTID_0045(+)AND A.OB_TEXTID_0042 =C.OB_TEXTID_0043(+)    ) D,tmp_0042 E WHERE D.OB_TEXTID_0042 = E.OB_TEXTID_0042 and E.rn >2 and E.rn <= 100 order by E.rn


                                             
0 0