本帖最后由 zichuanxiu904 于 2012-03-12 09:41:16 编辑

解决方案 »

  1.   

    是呀,是挺让人纠结的:
    当xcdd.from_organization_id = 8595的时候,你会取eib.bin 这个字段;
    那么 != 8595的时候怎么办呢?这个字段为空?
      

  2.   

    看看 sql 中 CASE  的用法 我详细你就不纠结了请教下:
    你的语句中 
      SELECT document_number
      FROM ecs_wip_confirm_doc
      WHERE 1 = 1
      AND document_id =l.confirm_document_id
    这句话里面条件  1=1 是用来干啥的?
      

  3.   


    可以使用 NVL 来解决
      

  4.   

     WHERE 1 = 1
      AND document_id =l.confirm_document_id
    这里是取所有当document_id =l.confirm_document_id
    表数据!
      

  5.   

    问题在于这是个查询语句,查询语句的case后面的then是否可以接查询语句
      

  6.   


     可以连接  但是连接查询的语句只能返回一行数据
    select CASE WHEN xcdd.from_organization_id = 8595
                THEN (SELECT eib.bin 
                     from apps.ecs_inv_bin_details eib
                     where ...) end a
    from xxwi_sub_transfer_h_v h