首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

Oracle 运用别名进行比较

2013-01-22 
Oracle 使用别名进行比较select w2_month as x,w2_week as y,x-y as z from table例子:这里我用了xy2个别

Oracle 使用别名进行比较
select w2_month as x,w2_week as y,x-y as z from table

例子:这里我用了x  y  2个别名分别表示2个字段(number类型)  现在我想用别名进行相减  这种好像不可以,请问有什么办法可以解决吗?


实际需求:W2实际入库周 是更加一个select 语句获取的

  --case when(W2实际入库周 - W2计划入库周) > 0 then '10'
            --        when(W2实际入库周- W2计划入库周) = 0 then '20'
              --       when(W2实际入库周 -W2计划入库周) < 0 then '30'
           --end as 'W2是否按期入库类型',
[解决办法]
报什么错啊?
[解决办法]

select 中-nvl(国,0) from ( select sal as 中 ,comm as 国 from emp) t;


测试了下,好像没问题哦
[解决办法]
直接用原来列名不就得了,非要用别名?
[解决办法]
select w2_month as x,w2_week as y,x-y as z from table
这个会被当做单独列来处理

不知道这样子和需求相符合吗?

hr@ORCL> create table t1 (id1 number,id2 number);

Table created.

hr@ORCL> insert into t1 values(1,2);

1 row created.

hr@ORCL> commit;

Commit complete.

hr@ORCL> with a as (select id1 x,id2 y,id1-id2 as z from t1)
  2      select x,y,z from a;

         X          Y          Z
---------- ---------- ----------
         1          2         -1

[解决办法]
在外面嵌套一层就可以了 
[解决办法]
哪个数据库也不支持这么写,同一层的你能直接用别名引用?

想最简单实现,就写成

select x,y,x-y z from 
  (select w2_month x ,w2_week y  from table)
[解决办法]
引用:
哪个数据库也不支持这么写,同一层的你能直接用别名引用?

想最简单实现,就写成

select x,y,x-y z from 
  (select w2_month x ,w2_week y  from table)


按照楼上说的做比较妥~!
[解决办法]
支持12楼,用子查询

热点排行