SELECT floor((sysdate-fxhyrq)/7) zs
      FROM l_rs l,l_ldry r
      WHERE l.fxhyrq >to_date('1220-01-01','yyyy-mm-dd')
      AND l.rsjg NOT IN('10','11','12','20','21','22','23','30','40','90')
      AND l.sfzjhm = r.sfzjhm
      AND rownum = 1
      ORDER BY l.fxhyrq DESC

解决方案 »

  1.   

    这里rownum=1可以执行吗?
    not in 不是一样吗,效率的话还是得看你的数据!
      

  2.   

    AND rownum = 1
      ORDER BY l.fxhyrq DESC
    ORDER BY 失效……
    select * from(
    SELECT floor((sysdate-fxhyrq)/7) zs
      FROM l_rs l,l_ldry r
      WHERE l.fxhyrq >to_date('1220-01-01','yyyy-mm-dd')
      AND l.rsjg NOT IN('10','11','12','20','21','22','23','30','40','90')
      AND l.sfzjhm = r.sfzjhm
      --AND rownum = 1
      ORDER BY l.fxhyrq DESC)
    where rownum = 1
      

  3.   

     这里如果rownum和order by一起用的话 还是会按照表中默认的排序 来选择显示第一行数据 
      

  4.   

    300w数据 现在有点慢  原来是  SELECT r.xm ,
        r.sfzjhm ,
        r.hjdxzqh,
        hjdxxdz ,
        r.csrq ,
        r.hyzk ,
        r.zfxm ,
        (SELECT COUNT(ID) rzs FROM l_zn WHERE xb = '1' AND sfzjhm = r.sfzjhm
        ) rzs ,
        (SELECT COUNT(ID) rzs FROM l_zn WHERE xb = '2' AND sfzjhm = r.sfzjhm
        ) nrs ,
        r.bzkdm ,
        (SELECT hyzcsx
        FROM
          (SELECT hyzcsx
          FROM l_rs l,
            l_ldry r
          WHERE l.sfzjhm = r.sfzjhm
          AND l.fxhyrq   >to_date('1620-01-01','yyyy-mm-dd')
          AND rownum     = 1
          ORDER BY l.fxhyrq DESC
          )
        ) zcsx ,
        r.xjdxzqh,
        r.xjdxxdz ,
        r.ldzt ,
        r.jdsj ,
        r.lrddjrq ,
        r.lcrq ,
        (SELECT zs
        FROM
          (SELECT floor((sysdate-fxhyrq)/7) zs
          FROM l_rs l,
            l_ldry r
          WHERE l.fxhyrq  >to_date('1620-01-01','yyyy-mm-dd')
          AND l.rsjg NOT IN ('10','11','12','20','21','22','23','30','40','90')
          AND l.sfzjhm    = r.sfzjhm
          AND rownum      = 1
          ORDER BY l.fxhyrq DESC
          )
        ) hyzs ,
        r.hkxz ,
        r.zmblzt
      FROM l_ldry r现在查询速度相当慢 想优化  让它马上4秒之内有反映
      

  5.   

    l_ldry表结构
    RYBM VARCHAR2(23 BYTE) Yes
    SFZJHM VARCHAR2(30 BYTE) Yes
    XM VARCHAR2(100 BYTE) Yes
    CSRQ DATE Yes
    XB VARCHAR2(1 BYTE) Yes
    HKXZ VARCHAR2(3 BYTE) Yes
    MZ VARCHAR2(3 BYTE) Yes
    HYZK VARCHAR2(3 BYTE) Yes
    WHCD VARCHAR2(3 BYTE) Yes
    ZFRYBM VARCHAR2(23 BYTE) Yes
    ZFSFZJLX VARCHAR2(2 BYTE) Yes
    FZSFZJHM VARCHAR2(30 BYTE) Yes
    ZFXM VARCHAR2(100 BYTE) Yes
    ZFCSRQ DATE Yes
    ZFHJDDM VARCHAR2(12 BYTE) Yes
    ZFHKXZ VARCHAR2(1 BYTE) Yes
    ZFMZ VARCHAR2(3 BYTE) Yes
    ZFHYZK VARCHAR2(2 BYTE) Yes
    ZFWHCD VARCHAR2(3 BYTE) Yes
    ZMBLZT VARCHAR2(1 BYTE) Yes
    HYZMHM VARCHAR2(20 BYTE) Yes
    SFLDSZ VARCHAR2(1 BYTE) Yes
    DQBYZK VARCHAR2(30 BYTE) Yes
    BZKDM VARCHAR2(3 BYTE) Yes
    HYDJRQ DATE Yes
    HYFZJG VARCHAR2(60 BYTE) Yes
    HJDXZQH VARCHAR2(12 BYTE) Yes
    HJDXXDZ VARCHAR2(200 BYTE) Yes
    HJDYZBM CHAR(6 BYTE) Yes
    XJDXZQH VARCHAR2(80 BYTE) Yes
    XJDXXDZ VARCHAR2(200 BYTE) Yes
    XJZDYZBM CHAR(6 BYTE) Yes
    LCRQ DATE Yes
    FHRQ DATE Yes
    LRDDJRQ DATE Yes
    LRDTCRQ DATE Yes
    LDLX VARCHAR2(1 BYTE) Yes
    LDZT VARCHAR2(1 BYTE) Yes
    SFTC VARCHAR2(1 BYTE) Yes
    TCYY VARCHAR2(1 BYTE) Yes
    SFBSGL VARCHAR2(1 BYTE) Yes
    DJDW VARCHAR2(12 BYTE) Yes
    LDYY VARCHAR2(1 BYTE) Yes
    JDSJ DATE Yes
    l_zn表结构
    ID VARCHAR2(10 BYTE) No
    SFZJHM VARCHAR2(30 BYTE) Yes
    XM VARCHAR2(30 BYTE) Yes
    CSRQ DATE Yes
    XB VARCHAR2(1 BYTE) Yes
    HC VARCHAR2(1 BYTE) Yes
    XYGX VARCHAR2(1 BYTE) Yes
    DQJKZK VARCHAR2(2 BYTE) Yes
    ZCSX VARCHAR2(1 BYTE) Yes
    FUKSRQ DATE Yes
    FYJSRQ DATE Yes
    FYJSYY VARCHAR2(1 BYTE) Yes
    ZNRYBM VARCHAR2(23 BYTE) Yes
    l_rs表结构
    ID VARCHAR2(10 BYTE) No
    SFZJHM VARCHAR2(18 BYTE) Yes
    FXHYRQ DATE Yes
    FXHYZS VARCHAR2(3 BYTE) Yes
    MCYJRQ DATE Yes
    HYZCSX VARCHAR2(1 BYTE) Yes
    RSJG VARCHAR2(2 BYTE) Yes
    JCRQ DATE Yes
    CSRQ DATE Yes