0
결과 집합을 비정규 화하여 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>
나는 피벗을 연구하지만이 적용되지 않는다 집계 함수를 사용 보았다 모든 예제. 나는 ROW_NUMBER 기능을 추가하고 시도 자체는 다음과 같이 조인
ID Disease1 Disease2 Disease3
1 Asthma NULL NULL
1 NULL Cancer NULL
1 NULL NULL Anemia
2 Asthma NULL NULL
2 NULL HBP NULL
모든 제안을 크게 감상 할 수있다 :
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
그러나, 이것은 다음과 같은 생산하고 있습니다. 괴물 같은 코드 블록을 사용하지 않고이 작업을 수행하는 방법을 찾고 싶습니다. 감사!
달콤한! 나는 너무 가깝다. MAX() 함수가 빠져있다. 정말 고맙습니다; 그건 속임수 였어. :) – rwking