当前位置: 代码迷 >> Oracle技术 >> 求赐教: oracle 嵌套查询 多列 as 用法有关问题
  详细解决方案

求赐教: oracle 嵌套查询 多列 as 用法有关问题

热度:130   发布时间:2016-04-24 08:08:20.0
求赐教: oracle 嵌套查询 多列 as 用法问题
本帖最后由 zhangrun1 于 2014-06-11 16:36:40 编辑
select i.*,rownum,
        (select p.code,p.name_zh from z_person p where i.person_id=p.id) as pCode pName,
        (select g.name from z_groups g where i.group_id=g.id) as gName
        from z_interrogee i where i.is_delete=0 and rownum between 0 and 1

select i.*,rownum,
        (select p.code from z_person p where i.person_id=p.id) as pCode,
        (select p.name_zh from z_person p where i.person_id=p.id) as pNameZh,
        (select g.name from z_groups g where i.group_id=g.id) as gName
        from z_interrogee i where i.is_delete=0 and rownum between 0 and 1


第二条语句正常执行,但是肯定有优化问题。请问像第一条这种多列需要as的语句怎么写。

另外我还想了一种方法:
select i.*,rownum,p.code,p.nameZh,
        (select g.name from z_group g where i.group_id=g.id) as gName 
        from z_interrogee i,z_person p where i.person_id=p.id 
        and i.is_delete=0 
        and rownum between 0 and 1


但是还想了解想第一条需要一次一个语句查多列然后as的语句怎么写?求大虾赐教!!
------解决方案--------------------
select i.*,rownum,
        p.code as pCode,
        p.name_zh as pNameZh,
        (select g.name from z_groups g where i.group_id=g.id) as gName
        from z_interrogee i,z_person p where i.is_delete=0 and rownum between 0 and 1 and i.person_id=p.id(+)
  相关解决方案