子查询的款困惑

本帖最后由 zhaoyh603 于 2011-02-15 21:47 编辑

select  (select a.dept_fullname from ad_department a where a.dept_id = parent_id)||'_'||dept_name as b ,dept_name,parent_id  from ad_department
Where Length(dept_Code) = 6    And dept_Code Like '99%' ;

b是空的

select b.dept_fullname||'_'||a.dept_name as b , a.dept_name from  ad_department a,ad_department b where a.parent_id=b.dept_id;

可以

目的是想update dept_fullname

为什么呀 疑惑

作者: zhaoyh603   发布时间: 2011-02-15

本帖最后由 zhaoyh603 于 2011-02-15 21:47 编辑

select  (select a.dept_fullname from ad_department a where a.dept_id = b.parent_id)||'_'||b.dept_name as b ,b.dept_name,b.parent_id  from ad_department b
Where Length(b.dept_Code) = 6    And b.dept_Code Like '99%' ;

加了别名就可以了,晕 why

作者: zhaoyh603   发布时间: 2011-02-15

本帖最后由 zhaoyh603 于 2011-02-15 21:48 编辑

update ad_department as b
set b.dept_fullname=(select a.dept_fullname from ad_department a where a.dept_id = b.parent_id)||'_'||b.dept_name
Where Length(b.dept_Code) = 6    And b.dept_Code Like '99%' ;

错误:
ERROR:  column "b" of relation "ad_department" does not exist
LINE 2: set b.dept_fullname=(select a.dept_fullname from ad_departme...

作者: zhaoyh603   发布时间: 2011-02-15

晕呼,没看明白。

作者: renxiao2003   发布时间: 2011-02-15

本帖最后由 zhaoyh603 于 2011-02-15 21:48 编辑

update ad_department b
set dept_fullname=a.dept_fullname||'_'||b.dept_name
from ad_department as a
Where Length(b.dept_Code) = 6    And b.dept_Code Like '99%'  and a.dept_id = b.parent_id;

这样可以

oracle这样貌似不行吧

什么标准?

作者: zhaoyh603   发布时间: 2011-02-15

看明白了吗?

作者: zhaoyh603   发布时间: 2011-02-15