2022년 4월 IT 세미나/컨퍼런스 일정 4월 9일(토) 2022 adiOS Intro 15:00~18:00 온라인 4월 11일(월) 2022년 4차 전자정부 표준프레임워크 온라인 정기교육 4월11일~17일 온라인 4월 13일(수) 2022 국제인공지능대전 (AI EXPO KOREA) 4월13일~15일 코엑스 4월 14일(수) LINE 서버 개발자들이 말한다! Armeria 아직도 안써요? 16:00~18:00 온라인 4월 20일(수) World IT Show 2022 4월20일~22일 코엑스 4월 20일(수) 제21회 세게 보안 엑스포 (SECON 2022) 4월20일~22일 킨텍스 4월 20일(수) 제10회 전자정부 정보보호 솔루션 페어 4월20일~22일 킨텍스 4월 25일(수) 2022년 5차 전..
오라클에서 소수점 값을 올리거나 내려서 정수를 변환하기 위해서는 CEIL, FLOOR 함수를 사용한다. CEIL 함수는 지정한 값에 소수점이 있는 경우 무조건 올려서 다음 정수 값을 반환한다. FLOOR 함수는 지정한 값에 소수점이 있는 경우 소수점 값을 내려서 정수 값을 반환한다. 소수점 값을 반올림하거나 버림을 하기 위해서는 ROUND, TRUNC 함수를 사용하면 된다. 목차 소수점 올림 (CEIL 함수) 소수점 내림 (FLOOR 함수) 소수점 반올림, 버림 (ROUND, TRUNC) 소수점 올림 (CEIL 함수) SELECT CEIL(0.5) , CEIL(1.2) , CEIL(1.5) , CEIL(1.8) , CEIL(2.5) FROM dual CEIL 함수는 소수점 값이 있는 경우 무조건 올려서 ..
오라클에서 n번째 행의 값을 가져오기 위해서는 NTH_VALUE 함수를 사용하면 된다. NTH_VALUE 함수는 오라클 11g R2부터 사용할 수 있는 분석함수이다. 이전 오라클 버전에서는 FIRST_VALUE, LAST_VALUE, LAG, LEAD, WINDOWING절 등을 활용하여 특정 행의 값을 가져올 수 있다. NTH_VALUE(칼럼, 위치) 조회된 전체 행에서 특정 행의 값 가져오기 SELECT empno , ename , job , sal , NTH_VALUE(sal, 3) OVER(ORDER BY sal DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS sal_nv FROM emp WHERE job IN ('MANAGER'..
2022년 3월 IT 세미나/컨퍼런스 일정 3월 14일(월) 2022년 3차 전자정부 표준프레임워크 온라인 정기교육 3월14일~20일 온라인 3월 16일(수) ICT Convergence Korea 2022 3월16일~17일 온라인 3월 19일(토) 2022 adiOS Blossom 15:00~18:00 온라인 3월 25일(금) 제6회 AI 차세대 컨택센터 컨퍼런스 2022 09:30~16:30 온라인 3월 31일(목) Golang 1.18 Release Party 20:00~22:00 온라인 4월 13일(수) 2022 국제인공지능대전 (AI EXPO KOREA) 4월13일~15일 코엑스 4월 20일(수) World IT Show 2022 4월20일~22일 코엑스 4월 20일(수) 제21회 세게 보안 엑..
오라클에서 특정 값인 경우 NULL로 치환하기 위해서는 NULLIF 함수를 사용하면 된다. NVL 함수와 조금 반대되는 함수라고 생각하면 된다. NVL 함수는 NULL인 경우 특정 값으로 치환을 하고, NULLIF 함수는 특정 값인 경우 NULL로 치환을 한다. NULLIF 함수는 두 개의 칼럼 값이 동일한지 판단할 때도 사용할 수 있다. 칼럼의 값을 특정 문자열과 비교 WITH mydb AS ( SELECT 1 AS item_id, 'ORACLE' AS item_desc FROM dual UNION ALL SELECT 2 AS item_id, 'SQL' AS item_desc FROM dual ) SELECT item_id , item_desc , NULLIF(item_desc, 'ORACLE') AS..
오라클에서 NULL 값을 치환할 때는 NVL, NVL2, COALESCE 함수를 사용한다. COALESCE 함수는 NVL 함수의 기능이 조금 더 확장된 함수라고 생각하면 된다. NVL 함수와 동일하게 사용할 수도 있지만, 여러 개의 칼럼의 NULL 값을 판별해야 할 경우 NULL이 아닌 첫 번째 칼럼의 값을 반환할 때 유용하게 사용할 수 있다. COALESCE(exp1, exp2, exp3, exp4 ...) 와 같이 함수의 인자의 개수는 동적으로 입력할 수 있다. 기본 사용법 WITH customers AS ( SELECT 1 AS c_id, 'Tammy Bryant' AS c_name, '010-1234-5678' AS tel_no1, '02-345-6789' AS tel_no2, NULL AS te..
오라클에서 조회된 데이터에서 특정 칼럼을 기준으로 하나의 행만 조회해야 하는 경우가 있다. 중복된 칼럼의 데이터에서 그룹별로 최신의 행 하나만 가져오거나, 특정 칼럼으로 정렬하여 최상위 하나의 행만 조회할 때 아래의 2가지 방법을 사용할 수 있다. 아래의 방법은 행 전체를 중복 체크를 하여 제거하는 방법(DISTINCT)이 아니고 특정 칼럼을 기준으로 중복을 제거하는 방법이다. 그룹별로 순번을 지정하여 하나의 행만 추출 SELECT empno , ename , job , hiredate FROM ( SELECT empno , ename , job , hiredate , ROW_NUMBER() OVER(PARTITION BY job ORDER BY hiredate DESC) AS rn FROM emp ) ..
오라클에서 상위 3개, 5개, 10개, 100개 등 n개의 데이터를 뽑기 위해서는 서브 쿼리를 활용하면 쉽게 해결할 수 있다. 서브 쿼리(Inline View)를 사용하여 데이터를 먼저 정렬한 후, 원하는 개수만큼 데이터를 추출하면 된다. 대부분 ROWNUM 키워드를 사용하며, 특수한 경우에 순위 함수(DENSE_RANK)를 사용하여 순위를 부여한 후 순위로 데이터를 추출하기도 한다. 상위 n개의 행(ROW) 추출 방법 SELECT empno , ename , sal FROM ( SELECT empno , ename , sal FROM emp ORDER BY sal DESC ) WHERE ROWNUM
오라클에서 누적 합계를 구하기 위해서는 SUM 함수와 OVER 절을 사용하면 된다. OVER 절을 사용하면 GROUP BY 절을 사용하지 않고도 SELECT 절에서 단독으로 합계를 구할 수 있다. OVER 절 내부의 ORDER BY 절의 칼럼 순서로 누적 합계가 표시되며, 조회된 결과도 해당 칼럼으로 정렬된다. ORDER BY 절에 선언된 칼럼의 값에 따라서 누적 합계 표시 형식이 달라질 수 있으므로 주의해야 한다. 누적 합계 구하기 SELECT empno , ename , job , sal , SUM(sal) OVER(ORDER BY empno) AS sal_sum FROM emp WHERE job IN ('MANAGER', 'SALESMAN') SUM 함수와 OVER 절을 사용하여 순차적으로 누적 합..
오라클에서 KEEP 키워드를 사용하면 행 그룹(GROUP BY) 내에서 최고 또는 최고 순위 행으로 집계를 할 수 있다. 그룹별로 MAX 또는 MIN 수치 값은 쉽게 표시할 수 있지만, MAX에 해당하는 행의 값 중에서 특정 텍스트 값을 같이 표시하기 위해서는 서브 쿼리를 사용하는 방법이 많이 사용된다. 그러나 KEEP 키워드를 사용하면 한 번의 쿼리문으로 최저 또는 최고에 해당하는 행의 값들을 쉽게 가져올 수 있다. KEEP 키워드는 GROUP BY 절 또는 OVER 절과 함께 사용해야 한다. KEEP을 처음 사용한다면 순위 함수(DENSE_RANK)를 알고 있으면 조금 더 쉽게 이해할 수 있다. [Oracle] RANK, DENSE_RANK 순위 함수 사용법 오라클에서 성적, 급여, 매출 등 순위를 ..