Language/SQL

[SQL]ROW_NUMBER() 함수

eunzae 2021. 12. 22. 11:09
select row_number() over(partition by 행기준칼럼 order by 정렬기준칼럼)
from 테이블명

 

활용: 가장 최신 버전의 ICD 단어사전을 매핑

-- 진단
-- 수정일: 2021.04.03. / 수정자: 신은재

select 
/*생략*/
     , A.DISS_CD                                as DISS_CD              -- 질병코드(ICD-10th)
     , V1.ICD_10_NM                             as DISS_ENM             -- 질병영문명(ICD-10th)
     , V2.ICD_10_NM                             as DISS_KNM             -- 질병한글명(ICD-10th)
  from 진단테이블                       A  -- 진단관리
/*생략*/
       left outer join
          (
           select ICD_10_CD
                , ICD_10_NM
				, ROW_NUMBER() OVER(PARTITION BY ICD_10 ORDER BY substr(용어사전버전,4,1) DESC) as KCD_NO
             from 용어사전테이블
            where /*생략*/
          )  V1 -- 한글
         on substr(A.DISS_CD,1,decode(instr(A.DISS_CD,'_'),'0',length(A.DISS_CD),instr(A.DISS_CD,'_')-1)) = V1.ICD_10_CD
		 and V1.KCD_NO = 1
       left outer join
          (
           select ICD_10_CD
                , ICD_10_NM
				, ROW_NUMBER() OVER(PARTITION BY ICD_10 ORDER BY substr(용어사전버전,4,1) DESC) as KCD_NO
             from 용어사전테이블
            where  /*생략*/            
          )  V2 -- 영문
		 on substr(A.DISS_CD,1,decode(instr(A.DISS_CD,'_'),'0',length(A.DISS_CD),instr(A.DISS_CD,'_')-1)) = V2.ICD_10_CD
		 and V2.KCD_NO = 1
/*생략*/