오라클 SQL에서 근삿값(가장 가까운 값)을 찾기 위해서는 ROW_NUMBER 함수와 RANK 함수를 사용하면 된다. ROW_NUMBER 함수는 결과 집합에 고유한 번호를 매기기 때문에 데이터가 1건만 조회가 되고, RANK 함수는 동일한 값이 있을 경우 같은 순위를 부여하기 때문에 중복된 데이터가 있을 경우 모두 조회가 된다. 위의 두 개의 함수를 사용하여 특정 기준 값과 가장 가까운 값을 찾는데 아주 유용하게 사용할 수 있다. 목차ROW_NUMBER 함수를 사용하여 근삿값 찾기RANK 함수를 사용하여 근삿값 찾기 ROW_NUMBER 함수를 사용하여 근삿값 찾기SELECT * FROM ( SELECT empno , ename , sal ..
오라클 SQL에서 날짜 형식에서 시간을 추출하기 위해서는 TO_CHAR 함수와 EXTRACT 함수를 사용하면 된다. TO_CHAR 함수는 시간 값을 문자열로 반환하며, EXTRACT 함수는 숫자 값으로 반환한다. TO_CHAR 함수를 조금 더 많이 사용하는 편이지만, 두 함수의 특성이 조금 다르기 때문에 상황에 따라서 필요한 함수를 사용하면 된다. 목차날짜에서 시간을 추출하는 방법TO_CHAR 함수를 사용하여 시간을 추출하는 방법EXTRACT 함수를 사용하여 시간을 추출하는 방법TO_CHAR 함수와 EXTRACT 함수의 반환값 비교 날짜에서 시간을 추출하는 방법SELECT SYSDATE , TO_CHAR(SYSDATE, 'HH24') AS to_char_hou..
오라클 SQL에서 초(second)를 분으로, 초를 시간으로, 초를 일로 변환하기 위해서는 기본 적인 산술연산을 사용하면 된다. 아래의 예제 쿼리문을 참고하면 쉽게 이해할 수 있을 것이다. SELECT 86400 AS seconds --초 , FLOOR(86400 / 60) AS minutes --분 , FLOOR(86400 / (60*60)) AS hours --시간 , FLOOR(86400 / (24*60*60)) AS days --일 FROM dual 초를 분으로 변환 ( FLOOR(86400 / 60) ) :1분은 60초이므로 초를 60으로 나누면 분으로 변환된다. 초를 시간으로 변환 ( FLOOR(86400..
오라클 SQL에서 시간을 포맷팅 할 때 사용하는 포맷 요소는 다양한 형식을 지원한다. 아래의 표를 참고하여 시간 데이터를 다양한 형식으로 변환하여 출력하면 된다. 날짜 및 시간 포맷은 TO_CHAR, TO_DATE 함수를 사용할 때 사용하기 때문에 사용법을 정확히 익혀두면 많은 도움이 될 것이다. 형식요소내용범위 HH, HH12 시간 (12시간 단위) 0 ~ 12 HH24 시간 (24시간 단위) 0 ~ 24 MI 분 0 ~ 59 SS 초 0 ~ 59 SSSSS 자정이후 초 단위 시간 0 ~ 86399 FF[1..9] 밀리세컨드 표시 최대 9자리까지, SS.FF3 AM, PM 오전, 오후 표시 목차날짜 포맷 기본 사용법자정이후 초 단위 시간의 활용법AM, PM 한글 영문 지정 방법밀리세컨드 포맷 사용법 ..
오라클 SQL에서 EXTRACT 함수를 사용하여 날짜(년, 월, 일) 또는 시간( 시, 분, 초 )을 분리하여 추출할 수 있다. 날짜를 분리하여 추출할 때는 주로 TO_CHAR 함수를 많이 사용하지만, EXTRACT 함수와 TO_CHAR 함수의 차이는 EXTRACT 함수는 숫자(NUMBER)를 반환하고, TO_CHAR 함수는 문자열을 반환한다. 목차EXTRACT 함수를 사용하여 날짜 추출(년, 월, 일)EXTRACT 함수를 사용하여 시간 추출(시, 분, 초)EXTRACT 함수를 사용하여 실제 테이블에서 추출TO_CHAR 함수를 사용하여 날짜 추출 방법 EXTRACT 함수를 사용하여 날짜 추출(년, 월, 일)SELECT SYSDATE , EXTRACT(YEAR FROM SYSDATE) AS yea..
오라클 SQL에서 정수를 반올림하기 위해서는 ROUND 함수를 사용하고, 정수를 버리기(절사)를 할 때는 TRUNC 함수를 사용하면 된다. 소수점을 반올림할 때는 반올림 위치를 양수로 지정하지만, 정수를 반올림하거나 버림을 할 때는 음수를 사용하여 위치를 지정한다. 아래의 반올림, 버림 위치 예시 이미지를 참고하면 쉽게 이해할 수 있을 것이다. 목차정수 반올림 방법 (ROUND 함수)정수 버림 방법 (TRUNC 함수) 정수 반올림 방법 (ROUND 함수)SELECT ROUND(123456, -1) , ROUND(123456, -2) , ROUND(123456, -3) FROM dual 정수를 반올림하기 위해서는 ROUND 함수를 사용하고, 반올림 위치를 음수로 지정한다. 해당 위치의 값..
SQL Server에서는 문자열에서 숫자만 추출하기 위해서는 SUBSTRING, PATINDEX 함수를 사용하여 숫자 부분을 자르거나, TRANSLATE 함수를 사용하여 문자를 공백으로 치환하여 숫자만 추출하는 방법이 있다. MSSQL에서는 REGEXP_REPLACE 같은 정규식 함수가 없기 때문에 위의 방법을 사용하거나, 문자열의 추출하는 사용자 함수를 생성하여 숫자를 추출해야 한다. 아래의 예제는 문자열에 하나의 숫자만 존재할 경우 유효한 방법이니 이점을 유의하여 참고하기 바란다. 목차문자열 자르기로 숫자를 추출하는 방법문자 치환을 사용하여 숫자를 추출하는 방법 문자열 자르기로 숫자를 추출하는 방법WITH SampleData AS ( SELECT 'cc_7000' AS StrVal UN..
오라클 데이터베이스에서 칼럼의 사이즈를 늘리거나 칼럼의 사이즈를 줄일 때는 ALTER TABLE MODIFY 명령을 사용하면 된다. 그러나 기존 데이터의 크기가 줄이려는 사이즈보다 큰 경우 오류가 발생할 수 있으며, 숫자(NUMBER) 칼럼의 소수점 길이를 늘일 때는 전체 길이도 함께 늘려야 정수부가 줄어들면서 발생하는 오류를 방지할 수 있다. 칼럼 사이즈 변경 방법컬럼 사이즈 변경 시 주의 사항 컬럼 사이즈 변경 방법-- 문자열: VARCHAR2(10) -> VARCHAR2(50)ALTER TABLE emp MODIFY ename VARCHAR2(50);-- 숫자: NUMBER(2) -> NUMBER(10)ALTER TABLE emp MODIFY deptno NUMBER(10);-- 소수점을 포함한 숫..
오라클 12c부터는 INVISIBLE 및 VISIBLE 칼럼 속성을 사용하여 칼럼의 순서를 변경할 수 있다. 이 방법은 기존 테이블의 구조를 변경하지 않고, 칼럼을 잠시 보이지 않게 설정했다가 다시 보이게 설정하여 칼럼의 순서를 변경하는 원리이다. 그리고 오라클 11g 이하에서 칼럼의 순서를 변경하기 위해서는 테이블을 재생성하는 방법을 사용해야 하며, 특별한 경우가 아니면 권장하지는 않는다. 목차오라클 12c 이상에서 칼럼 순서 변경 방법오라클 11g 이하에서 칼럼 순서 변경 방법 오라클 12c 이상에서 칼럼 순서 변경 방법 오라클 12c 이상부터 INVISIBLE, VISIBLE 속성을 사용하여 칼럼의 순서를 쉽게 변경할 수 있다. 칼럼을 숨겼다가 다시 보이게 하면 칼럼의 순서가 뒤로 옮겨지는 원리이다..
오라클 SQL에서 SUM(DECODE)는 특정 조건의 데이터를 합산해서 가로로 표시할 때 사용하는 방법이다. DECODE 함수가 오라클에서만 사용가능하기 때문에 표준 SQL인 SUM(CASE WHEN) 구문을 권장하기도 하지만, 오라클에서 사용할 때는 SUM(DECODE) 구문이 조금 더 직관적이고, 쿼리문이 조금 더 간결하기 때문에 실무에서 많이 사용하는 편이다. 두 가지 방법 모두 동일한 결과를 얻을 수 있기 때문에 취향에 따라서 사용하면 된다. 목차기본 사용법세로의 합산 값을 가로로 표시하기특정 조건의 건수 합산하기연월별 집계표 만들기 (고급예제) 기본 사용법SELECT SUM(DECODE(job, 'MANAGER', sal)) AS manager_sal FROM emp SUM(DECODE) 구..