本人刚刚接触oracle,有个sql语句总是报错,请各位前辈指教
例如:
select deptname as dt,decode(deptname,deptname in( '1','2','3'),'7',' ') as realdept from tab
我的需求是判断一个字段的值是否在某一范围内,如果是就给他们一个统一的值,如果不在,则是空字符,请各位高手指点下啊,急!!~~
例如:
select deptname as dt,decode(deptname,deptname in( '1','2','3'),'7',' ') as realdept from tab
我的需求是判断一个字段的值是否在某一范围内,如果是就给他们一个统一的值,如果不在,则是空字符,请各位高手指点下啊,急!!~~
decode里面是不能加判断条件的
可以这样select deptname dt,
case when deptname in ('1','2','3') then
'7'
else ''
end realdept
from tab;
when '1' then '7'
when '2' then '7'
when '3' then '7'
else ' '
end realdept from tab
select * from dept;
DEPTNO DNAME LOC
------ -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTONselect deptno,
case when deptno in(10,20) then '10|20'
else '30|40'
end deptarea
from dept;DEPTNO DEPTAREA
------ --------
10 10|20
20 10|20
30 30|40
40 30|40