-2

こんにちは、同じ列の値を 1 つだけ表示する必要がありますが、他の列の値は次の行に表示されます。たとえば、Person(iD, name, surname) と Contact(iD, description, contact) というテーブルがあり、1 人の人物にはツリーの連絡先があります。このレポートを作成するにはどうすればよいですか?

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;

ただし、ウィンドウ関数に順序付けを追加し、結果に order by を追加して、出力が常に正しい順序になるようにする必要があります。

于 2013-10-15T17:33:33.230 に答える