你好我需要只显示一个相同的列值,但是每个其他列值显示给下一行。 例如,我有表Person(iD,姓名,姓氏)和联系人(iD,描述,联系人),一个人有树联系人。 我该怎么做这个报告?
iD Name Surname Description Contact
5 Johny Walker Email Johny.Walke@xzy.zz
Mobile 6546846168
Fax 688468
答案 0 :(得分:1)
理论上,类似以下构造的东西应该在8.1.6或更高版本中起作用:
select
case r when 1 then p.id end as id,
case r when 1 then name end as name,
case r when 1 then surname end as surname,
description,
contact
from
person p, (
select
id,
row_number() over (partition by id) as r,
description,
contact
from
contact
) c
where p.id = c.id;
但你应该在窗口函数中添加排序,并在结果中添加一个顺序,以强制输出始终保持正确的顺序。