본문 바로가기
반응형

오라클9

오라클 - CASE 함수 사용해보기 오라클의 CASE 함수를 사용하면 DECODE로 처리하던 쿼리문을 보다 간단하게 만들 수 있습니다. 실습해보기 1. TEMP 테이블을 이용해 연봉이 30,000,000 이하는 'D', 30,000,000 초과 50,000,000 이하는 'C', 50,000,000 초과 70,000,000 이하는 'B'; 70,000,000 초과는 'A'라고 등급을 출력하고, 등급별 인원수를 구해보자(CASE 함수 사용) CASE 함수의 기본형식 SELECT CASE WHEN '컬럼명1' [조건] THEN '결과값' CASE WHEN '컬럼명2' [조건] THEN '결과값' . . . CASE WHEN '컬럼명N' [조건] THEN '결과값' END FROM 테이블명; CASE WHEN 뒤에 조건을 부여한다. 2. 행 단.. 2021. 11. 18.
오라클 - 계층형 쿼리(Hierachical Select) 알아보기 계층형 쿼리는 회사나 어떠한 단체의 조직도와 비슷합니다. 시작이 되는 Root Node(루트 노드)가 존재하고, 거기서부터 뻗어져 나오는 Parent node(부모 노드)와 Child node(자식 노드)가 존재합니다. 이렇게 어떠한 값과 어떠한 값이 연결되어 있기 때문에 부모 노드로부터 자식 노드 혹은 말단 노드까지, 자식 노드 혹은 말단 노드로부터 부모 노드 혹은 루트 노드까지 값을 조회할 수 있는 것이 계층형 쿼리입니다. 예제를 통해 계층형 쿼리를 알아보겠습니다. 1. 우선 계층형 쿼리를 이해하기 위해 TDEPT 테이블에 자료를 추가하고 변경합니다. 2. 자신을 상위부서로 지정하고 있는 테이블의 값을 추가한 값으로 변경합니다. 3. 자 이제 계층형 쿼리를 사용해봅시다. 새로 INSERT 한 사장실을.. 2021. 11. 17.
오라클 - ROWNUM 쉽게 알아보기 ROWNUM WHERE 절에 의해 의해 추출된 DATA SET에 ROW 단위로 붙는 순번 조회되는 행 수를 제한할 때 많이 사용된다. ROWNUM에는 '=, >, >='를 조건으로 줄 수 없다. ROWNUM에 부여할 수 있는 조건은 ' 2021. 11. 17.
오라클 - MIN 함수 실습(서브쿼리 대신 하기) 위와 같은 값을 갖는 TEMP 테이블에서 직급별로 최소 연봉을 갖는 직원의 사번과 연봉을 알아내려면 어떻게 해야할까요? 아마 질문을 듣고 서브 쿼리를 사용할 줄 아시는 분들은 서브쿼리 사용법을 떠올리실 겁니다. 그렇다면 서브쿼리를 사용하지 않고는 어떻게 구할 수 있을까요? 정답부터 말씀드리면, 정답은 다음과 같습니다. 그렇다면 이 SELECT문을 하나하나 찬찬히 분해해보겠습니다. 우선 직급과 사번, 연봉을 추출해야 합니다. 직급은 그대로 'SELECT LEV'로 추출합니다. 연봉은 MIN 함수를 'MIN(SALARY)'를 사용해서 추출합니다. 그렇다면 사번은 어떻게 해야 할까요? SUBSTR(MIN(LPAD(TO_CHAR(SALARY), 10, '0')||EMP_ID), 11) EMP_ID를 하나씩 분해.. 2021. 11. 16.
오라클 - 날짜와 숫자를 문자로 나타내는 법 날짜 표현 오라클에서 날짜를 문자로 나타내는 데이터 형식은 TO_CHAR입니다. 'SELECT TO_CHAR(SYSDATE, '표현 형식')'과 같은 같은 형태로 사용됩니다. 표현 형식에 따른 결과를 알아보겠습니다. 1. YYYY : 연도 표현 2. YEAR : 연도 철자로 표현 3.Q : 분기 표현 4. MM : 월 표현 5. MONTH : '월'을 붙여 달 표현 6. DDD/DD/D : 각각 연/월/주로부터 몇 번째 일인지 표현 2021년부터 320일 째(11월 16일 기준) 11월부터 16일 째(11월 16일 기준) 이번 주 일요일부터 3일째(11월 16일 기준) 7. DAY : 오늘의 요일 표현 8. AM/PM : 오전/오후 표현 9. HH/HH24 : 시간 표현 현재 시간 12시간식으로 표현 현.. 2021. 11. 16.
오라클 - 존재하지 않는 컬럼의 값을 UNION 하는 방법 오라클의 집합 연산자를 사용할 때 집합 연산자로 연결된 SELECT문들은 컬럼의 수와 데이터 형이 순서대로 일치해야 합니다. 따라서 동일한 컬럼이 존재하는 경우에 다음과 같이 합집합을 이용한 데이터 SET을 만들 수 있습니다. 하지만 이런 경우는 어떨까요? 우선, TCOM 테이블을 확인해보겠습니다. TCOM 테이블의 전체 데이터는 위와 같습니다. 이번엔 TEMP 테이블을 확인해보겠습니다. TEMP 테이블의 전체 데이터는 다음과 같습니다.(일부 생략) 이런 테이블에서 동일한 EMP_ID를 사용하고 TEMP 테이블의 SALARY, TCOM 테이블의 COMM을 사용해 합집합을 하고 싶다면 어떻게 해야 할까요? 우선 위와 같은 방식으로 합집합을 사용해보겠습니다. 다음과 같이 동일한 컬럼명을 이용해 합집합 처리를.. 2021. 11. 8.
반응형