请问下面是从一个function中截取的,请问是什么意思呀?SUM(DECODE"LOCATION_TRANSFER"."STATUS",'O',NVL"LOCATION_TRANSFER_DETAIL"."TRANSFER_QTY",0),0)) as final_qty,

解决方案 »

  1.   

    是这样的
    SUM(DECODE("LOCATION_TRANSFER"."STATUS",'O',NVL("LOCATION_TRANSFER_DETAIL"."TRANSFER_QTY",0),0))
      

  2.   

    解释:
        假如表LOCATION_TRANSFER中的字段STATUS字段的值为'0'的话,则用LOCATION_TRANSFER_DETAIL表中的TRANSFER_QTY值来代替,但是当LOCATION_TRANSFER_DETAIL表中的TRANSFER_QTY值为空的话,则用0来代替,
        LOCATION_TRANSFER中的字段STATUS字段的值为除'0'以外的其他值的时候,就用0来代替,然后对整体求和.
      

  3.   

    NVL(TableName.Col,0)是指 当TableName表中的Col值为NULL的话,则用0来代替
    DECODE(TableName.Col,'0',Value1,0)假如表TableName中的字段Col字段的值为'0'的话,则该表达式值 为 Value1,否则该表达式值都为0