将DECODE()合并到SQL中



我在这里有点墨守成规。我想使用DECODE((函数将一个城市位置的列合并为一个名为"loc"的列的城市名称,有点像这样:DECODE(deptno,10,'NEW YORK'(。但我不知道如何在不运行代码的情况下将其放入其中。到目前为止,我所尝试的一切都没有成功。如有任何帮助,我们将不胜感激,谢谢。

Create view emp_view_updt as Select e.empno, e.ename, e.job, d.deptno, d.loc from emp e inner join dept d on e.deptno = d.deptno;

使用case表达式!decode()不仅高度专用于Oracle,而且Oracle已经支持case几十年了。

因此:

create view emp_view_updt as
select e.empno, e.ename, e.job, d.deptno,
(case when deptno = 10 then 'NEW YORK' end) as loc
from emp e inner join
dept d
on e.deptno = d.deptno;

对于其他值,可以重复when/then子句。

Create view emp_view_updt as 
Select e.empno, e.ename, e.job, d.deptno, 
DECODE (d.loc, 10, 'NEW YORK', 
2, 'San Francisco', 
3, 'New Jersey', 
4, 'Seattle',
'Non domestic') as loc 
from emp e inner join 
dept d 
on e.deptno = d.deptno;

最新更新