[함수] 1 일 1 함수 : 그룹 내 순위를 매기는 함수(RANK, DENSE_RANK, ROW_NUMBER)
·
데이터베이스/oracle
그룹 내 순위를 매기는 함수에는 RANK, DENSE_RANK, ROW_NUMBER가 있다. 각각 특징을 비교하여 어떤 경우에 쓰이는 지 알아보았다. ROW_NUMBER()SELECT     employee_id,     salary,     ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS row_numFROM     employees; 이 예시에서는 각 부서별로 사원을 연봉에 따라 순위를 매기는 경우이다. employees 테이블에서 각 사원의 연봉을 내림차순으로 순위를 매긴다. PARTITION BY 절은 부서별로 분할하여 순위를 매기고, ORDER BY 절은 연봉을 기준으로 순위를 부여한다. RANK()SELECT    ..
TRANSLATE 함수로 정규식같은 효과 내기
·
데이터베이스/oracle
0!1DDDFSDDFSD02@-9874-5612AWE!@ 라는 문자열에서 숫자만 추출하고 싶다면, 정규식을 사용하는 것이 가장 편하고, 빨리 생각나는 방법이다. 하지만 낮은 오라클 버전에선 정규식을 사용할 수 없다. 그 때 사용할 수 있는 것이 바로 TRANSLATE함수다. 숫자만 추출할 때 SELECT TRANSLATE('0!1DDDFSDDFSD02@-9874-5612AWE!@','0123456789'||'0!1DDDFSDDFSD02@-9874-5612AWE!@' ,'0123456789') AS TRANSLATE FROM DUAL; TRANSLATE(인자1, 인자2, 인자3) 이라고 할 때, 인자 1에 있는 숫자만 남기기 => 숫자는 0~9까지 인자 2 인 치환대상에 0123456789+ 인자 1(적용..