orcale多表查询,怎么能相同的数据显示一行,不同的数据输出到列中显示

现在有姓名表,标识表,诊断表三张表,三张表中的标识都是相同,但是诊断表中同一个标识多个诊断,现在的查询和结果如下:
Select a.ID,a.姓名,a.性别,b.身份证号,c.诊断,c.编码 where 姓名表 a,标识表 b,诊断表 c
And a.ID=b.ID
And b.ID=C.ID
Order by a.ID
结果:
ID 姓名 性别 身份证号 诊断 编码
11 张三 男 23456 肺炎 111
11 张三 男 23456 咳嗽 222
12 李四 男 13456 发热 234
12 李四 男 13456 头疼 345

现在想实现是的结果如下:
ID 姓名 性别 身份证号 诊断1 编码1 诊断2 编码2
11 张三 男 23456 肺炎 111 咳嗽 222
12 李四 男 13456 发热 234 头疼 345

可以横线显示,但是不是一列,将数据合到一起。
样例:稍微修改一下既可以
SELECT distinct A.ID,A.NAME,B.SID,
(
SELECT WM_CONCAT(C.ZDXI) AS ZDXI FROM ZHENDUAN C WHERE B.ID=C.ID)
FROM RENYUAN A,BIAOSHI B,ZHENDUAN C WHERE A.ID=B.ID AND B.ID=C.ID