-2

你好,我只需要显示一个相同的列值,但每个其他列值都显示到下一行。例如,我有表 Person(iD, name, surname) 和 Contact(iD, description, contact),一个人有树形联系人。我怎样才能制作这份报告?

iD     Name     Surname    Description    Contact
5      Johny    Walker     Email          Johny.Walke@xzy.zz
                           Mobile         6546846168
                           Fax            688468
4

1 回答 1

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;

但是您应该向窗口函数添加排序,并为结果添加排序,以强制输出始终处于正确的顺序。

于 2013-10-15T17:33:33.230 回答