有数据表User,其中有字段Name。现在要检索记录:
SELECT Name From User
如果Name是NULL或‘’,显示“无名”,否则显示Name。怎样修改SELECT语句?

解决方案 »

  1.   

    SELECT DECODE(NVL(NAME,''),'','无名',NAME) FROM USER
      

  2.   

    SELECT NVL(NAME,'无名') FROM USER
      

  3.   

    to 楼主
    "如果Name是NULL或‘’"
    =======================
    在Oracle里 ''和NULL是一回事,是等价的to: 79bo(山芋) 
    你的写法有点赘述了select nvl(name,'无名')
    或者
    select decode(null,name,'无名',NAME)
      

  4.   

    SELECT NVL(NAME,'无名') FROM USER这么写当为‘’的时候是打印不出“无名”的结果的
      

  5.   

    select decode(name,null,'无名',' ','无名',name) as name from user
      

  6.   

    jacobrong79 的可以,或者用case when
      

  7.   

    1.select decode(name,null,'无名','','无名',name) as name from user
    2.select (case when name=null then '无名' when name='' then '无名' else name end) as name from user
    上面2种方法等价
      

  8.   

    1.select decode(name,null,'无名','','无名',name) as name from user
    2.select (case when name=null then '无名' when name='' then '无名' else name end) as name from user
    上面2种方法等价执行速度应该是前者有限吧