select a.payment_name,
       a.payment_desc,
       (select nvl(b.enabled, 0)
          from ecm_payment b
         where a.payment_name = b.payment_name
           and b.store_id = 2) as enabled
  from ecm_platform_payment a
 where a.enabled = 1
执行结果enabled为什么会是空值啦。。
求解。。
在线等。。
oraclenvl

解决方案 »

  1.   

     他的 值是 "" 而并非 是 null你用 decode(enabled,null,0,'',null,0,enabled)用这个  试一下 吧
      

  2.   

    恩,考虑的就是enabled不存在的情况下给它赋值为0的
      

  3.   

    SELECT NVL(TRIM(' '),0) FROM DUAL;
      

  4.   

    select a.payment_name,
           a.payment_desc,
           NVL(select nvl(b.enabled, 0)
              from ecm_payment b
             where a.payment_name = b.payment_name
               and b.store_id = 2),0) as enabled
      from ecm_platform_payment a
     where a.enabled = 1