我在这里有点墨守成规。我想使用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;