Select Top  15 SealData.Code as 印章编号..... From ((((((SealData Left Join Company On SealData.SNO=Company.SNO) Left Join Shape On SealData.SdShape=Shape.Type) Left Join Material On SealData.BZ1=Material.BZ1) Left Join Model On SealData.ModelNo=Model.ModelNo) Left Join SealStatus On SealData.SSCode=SealStatus.SSCode) Left Join AuditingUnit On SealData.AuCode=AuditingUnit.AuCode) Where ... Order By SealData.CodeWhere及一个列我就不写出来了,我是在VB中连ORACLE的,这条语句在MSSQL下运行正确,但在连接ORACLE时,提示未找到预期的FROM什么的。如果我将Top 15这个去掉,就一切正常,问题应该在Top 这个语句上,请问,这条SQL语句该如何改,才能在ORACLE下运行呢?谢谢。

解决方案 »

  1.   

    将top 15 改成 rownum 小于 16
      

  2.   

    SELECT *
    FROM (SELECT sealdata.code AS Ó¡Õ±àºÅ,.. .
           FROM sealdata
           LEFT JOIN company ON sealdata.sno = company.sno
           LEFT JOIN shape ON sealdata.sdshape = shape.TYPE
           LEFT JOIN material ON sealdata.bz1 = material.bz1
           LEFT JOIN model ON sealdata.modelno = model.modelno
           LEFT JOIN sealstatus ON sealdata.sscode = sealstatus.sscode
           LEFT JOIN auditingunit ON sealdata.aucode = auditingunit.aucode
           WHERE .. .
           ORDER BY sealdata.code)
    WHERE rownum <= 15
      

  3.   

    SELECT *
    FROM (SELECT sealdata.code AS 印章编号,.. .
           FROM sealdata
           LEFT JOIN company ON sealdata.sno = company.sno
           LEFT JOIN shape ON sealdata.sdshape = shape.TYPE
           LEFT JOIN material ON sealdata.bz1 = material.bz1
           LEFT JOIN model ON sealdata.modelno = model.modelno
           LEFT JOIN sealstatus ON sealdata.sscode = sealstatus.sscode
           LEFT JOIN auditingunit ON sealdata.aucode = auditingunit.aucode
           WHERE .. .
           ORDER BY sealdata.code)
    WHERE rownum <= 15--oralce 没有top这种写法,只能用rownum来代替.