我正在尝试对结果集进行非规范化,以便每个 ID 有一条记录。这是一份患有多种合并症的患者名单。目前的数据如下所示:
ID Disease
1 Asthma
1 Cancer
1 Anemia
2 Asthma
2 HBP
我需要它看起来像这样:
ID Disease1 Disease2 Disease3
1 Asthma Cancer Anemia
2 Asthma HBP <NULL or Blank>
我研究了 Pivot,但我看到的所有示例都使用了不适用的聚合函数。我添加了 row_number 函数并尝试了如下自联接:
case when rownum = 1 then Disease else NULL end Disease1,
case when rownum = 2 then Disease else NULL end Disease2,
case when rownum = 3 then Disease else NULL end Disease3
但是,这会产生以下结果:
ID Disease1 Disease2 Disease3
1 Asthma NULL NULL
1 NULL Cancer NULL
1 NULL NULL Anemia
2 Asthma NULL NULL
2 NULL HBP NULL
任何建议将不胜感激。我真的很想找到一种方法来实现这一点,而无需使用大量代码(这是我在尝试这样做时最终得到的)。谢谢!