select ID,MAILTYPE,MAILTITLE,to_char(WRITETIME,'yyyy-mm-dd') WRITETIME from mails where ID in (select ID from mails where ISPUB=1 and ISVAIDATE=1 and ISSECRET=0 and ISCHOOSEPUB=1 order by ID desc) and rownum<11
哪里缺右括号了?
不明白

解决方案 »

  1.   

    改一下:
    select ID,MAILTYPE,MAILTITLE,to_char(WRITETIME,'yyyy-mm-dd') WRITETIME from mails where ID in (select ID from mails where ISPUB=1 and ISVAIDATE=1 and ISSECRET=0 and ISCHOOSEPUB=1) and rownum <11 order by ID desc;
      

  2.   

    in (子查询)的用法中,子查询不能使用order by!否则报错。修改下:
    SELECT ID, MAILTYPE, MAILTITLE, TO_CHAR(WRITETIME, 'yyyy-mm-dd') WRITETIME
      FROM MAILS
     WHERE ID IN (SELECT ID
                    FROM MAILS
                   WHERE ISPUB = 1
                     AND ISVAIDATE = 1
                     AND ISSECRET = 0
                     AND ISCHOOSEPUB = 1)
       AND ROWNUM < 11;
      

  3.   

    刚刚说了,子查询里用order by,纯属多此一举,子查询的目的,只是找出合适的数据。
    要排序,外面排。
      

  4.   

    子查询中不能有order by语句的,是这里出错了