如果光看题目的话,肯定会感觉很简单,但是运用到实际中就很麻烦了。
需求:主表对应子表 一对多,现在对应主表一条记录,可能对应子表多条记录,将这些记录汇总到一行中,考虑到主表记录可能比较多,只需要,回去两个就可以了。
先来看一下我的查询语句:
select V.memvipmember_id, V.vipcode, decode(V.vipsource, 1, '商场', 2, '微信', 3, '其他') as vipsource,
V.vipname, cast(decode(V.vipstatus, 1, '正常', 2, '不正常', 3, '作废') as varchar2(10)) as vipstatus,
decode(V.vipgender, 1, '男', 2, '女') as vipgender, V.vipfamilyphone, V.vipmobile,
'' as verifytelno, V.vipemail,
cast(decode(V.passtype, 1, '身份证', 2, '护照', 3, '军官证') as varchar(10)) as passtype, V.passno,
PE.PUBBE002 as city_idc1, PF.PUBBF001 as pubbg003c1, PG1.PUBBG002 as houses1c1,
PG2.PUBBG002 as houses2c1, PG3.PUBBG002 as houses3c1,
x.address as address1,x1.address as address2
fro