① select id,name,case flag when '1' then '有效' when '0' then '无效' end as flag from tableName

② select id,name,decode(flag,'1','有效','0','无效') as flag from tableName
注:flag 字段类型为 char(1)
在jsp页面显示时,①语句中不能正常显示  '有效'或'无效' ②语句中可以正常显示
高手们请问这是什么原因?
他们各自的原理是什么?
多谢赐教!

解决方案 »

  1.   

    一样吧,看不出什么区别,如果你在数据库端执行没问题的话那就不是sql语句的问题
      

  2.   

    select id,name,case flag when '1' then '有效' else '无效' end as flag from tableName 第一句改成这样试试
      

  3.   

    select id,name,case flag when '1' then '有效' when '0' then '无效' end as flag from tableName 没有 else
      

  4.   

    ORACLE 8I中不能在select语句中使用case when,在10g中2、3楼的语法都是对的,两者都可用。
      

  5.   

    case没有else子句造成的,在一般情况,会出现楼主的情况。在PL/SQL中,则会报异常。