试一下这样
ClientDataSet1.CommandText:=’SELECT * FROM (SELECT * FROM DUAL  A,(SELECT * FROM DUAL ) B WHERE A.DUMMY=B.DUMMY ORDER BY A.DUMMY’

解决方案 »

  1.   

    to luoweicaisd(笑三少) :
    谢谢关注,
    这样写是不会报错,可是我现在必须要写成子查询里带ORDER BY 的形式,我的SQL是这样的形式:
    SELECT 字段列表 FROM 
    (SELECT 字段列表 FROM TABLE A ORDER BY KEY) A,
    (SELECT 字段列表 FROM TABLE B ORDER BY KEY) B,
    (SELECT 字段列表 FROM TABLE C ORDER BY KEY) C,
    (SELECT 字段列表 FROM TABLE D ORDER BY KEY) D
    WHERE A.BH=B.BH AND A.BH=C.BH AND A.BH=D.BH ORDER BY PX
    由于关联的比较多,子查询的排序可以明显提高查询效率,而最终的结果是按其它字段排序。