有表t
yhzh字段可能为空(null)
查询时,需要把空值(null)替换成20个空格
如何写select nvl(yhzh,(' ',20)) from t这样写不行

解决方案 »

  1.   


    select nvl(yhzh,substr(rpad('a',21,' '),2,20)) from dual;
      

  2.   


    --换成t
    select nvl(yhzh,substr(rpad('a',21,' '),2,20)) from t;
      

  3.   

    select nvl(yhzh,lpad(' ',20)) from dual;
      

  4.   

    这个涉及到lpad与rpad函数的使用
    lpad :如 lpad(变量,10,' ')就是指变量的长度不够10的时候给变量前加空格,直到变量长度为10;
    rpad: rpad(变量,10,' ')就是指变量的长度不够10的时候给变量后加空格,直到变量长度为10
    楼主这个的写法:select nvl(yhzh,rpad(' ',20,' ')) from t
      

  5.   


    SELECT NVL(YHZH,LPAD(' ',20)) FROM T