日期:2014-05-17  浏览次数:21114 次

求助oracle nvl函数的使用方法
有表t
yhzh字段可能为空(null)
查询时,需要把空值(null)替换成20个空格
如何写

select nvl(yhzh,(' ',20)) from t

这样写不行

------解决方案--------------------
SQL code

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

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

select nvl(yhzh,rpad(' ',20,' ')) from t
------解决方案--------------------
SQL code

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

------解决方案--------------------
NVL(,LPAD('',20))