select decode(nvl(adress.adr1,'null'),'null',decode(address.adr2,null)... 如此嵌套,做吧或者,试试SELECT 语句中嵌IF THEN来实现 ,SELECT XXX IF THEN FROM
一句即可select nvl(adress.adr1,'')||nvl(adress.adr2,'')||nvl(adress.adr3,'')... from adress where rownum < 10;
用以楼上的方法: select nvl(address.adr1,'')||nvl(address.adr2,'')||nvl(address,adr3,'')||... from address where rownum<10
但是rownum对于显示有一定的限制,它是按照进入到数据库重的顺序来显示的。 select * from a where rownum<10 order by id; 这是不起作用的。 select * from (select * from a order by id) a where rownum<10.
写一个函数addstring(s1,s2),如果s1为空返回s2,如果s2为空返回s1,否则返回s1||' '||s2, create or replace function addstring(s1 varchar2,s2 varchar2) return varchar2 as begin if s1 is null then return s2; elsif s2 is null then return s1; else return s1||' '||s2 end if; end; /select addstring(addstring(adr1,adr2),adr3) from ....
如此嵌套,做吧或者,试试SELECT 语句中嵌IF THEN来实现
,SELECT XXX
IF
THEN
FROM
from adress where rownum < 10;
select nvl(address.adr1,'')||nvl(address.adr2,'')||nvl(address,adr3,'')||...
from address where rownum<10
select * from a where rownum<10 order by id;
这是不起作用的。
select * from (select * from a order by id) a where rownum<10.
create or replace function addstring(s1 varchar2,s2 varchar2) return varchar2
as
begin
if s1 is null then
return s2;
elsif s2 is null then
return s1;
else
return s1||' '||s2
end if;
end;
/select addstring(addstring(adr1,adr2),adr3) from ....