오라클 SQL에서 여러 행의 데이터를 KEY, VALUE 형태로 하나의 JSON 객체로 합치기 위해서는 JSON_OBJECTAGG 함수를 사용하면 된다. JSON_OBJECTAGG 함수는 오라클 12c R2 이상에서 사용할 수 있다. JSON_OBJECT( [ { [KEY] key_expr VALUE val_expr } -- JSON 객체의 "키:값" 쌍을 정의 [FORMAT JSON], -- 값(val_expr)이 JSON 형식임을 명시. 유효하지 않은 JSON 형식이면 오류 발생 ... ] [ JSON_on_null_clause ] -- NULL 처리 방식 지정 (NULL ON NULL 또는 ABSENT ON NULL) [ JSON_returni..
오라클 SQL에서 JSON 객체를 만들기 위해서는 JSON_OBJECT 함수를 사용하면 된다. JSON_OBJECT 함수는 키 이름(KEY)과 값(VALUE)의 매핑을 유연하게 설정할 수 있어 단순한 데이터 변환뿐 아니라 복잡한 JSON 객체를 동적으로 생성하는 데에도 유용하게 사용할 수 있다. JSON_OBJECT 함수는 오라클 12c R2 이상에서 사용할 수 있다. JSON_OBJECT( [ { [KEY] key_expr VALUE val_expr -- JSON 객체의 "키:값" 쌍 지정 | expr [ ":" expr ] -- "키:값"을 표현식으로 생성 } [FORMAT JSON], ..
오라클 SQL에서 여러 행의 데이터를 하나의 배열로 반환하기 위해서는 JSON_ARRAYAGG 함수를 사용하면 된다. JSON_ARRAYAGG 함수는 ORDER BY를 사용하여 배열 요소를 정렬할 수 있으며, CLOB 형식으로 반환할 수 있기 때문에 대용량의 데이터를 하나의 문자열로 합쳐서 반환할 때도 사용할 수 있다. JSON_ARRAYAGG 함수는 오라클 12c R2부터 사용할 수 있다. JSON_ARRAYAGG( expr [FORMAT JSON] -- 배열에 포함할 열이나 표현식 (JSON 데이터라면 FORMAT JSON 사용) [ORDER BY column [ASC | DESC]] -- 배열 요소를 정렬 (기본적으로 순서가 보장되지 않음) [NULL ON NULL | ABSENT..
오라클 SQL에서 JSON 데이터를 배열로 반환하기 위해서는 JSON_ARRAY 함수를 사용하면 된다. JSON_ARRAY 함수는 오라클 12c R2 이상에서 사용할 수 있다. JSON_ARRAY 함수는 입력된 데이터를 단순 배열로 반환하는 함수라고 생각하면 되며, 각 데이터별로 옵션을 사용하여 NULL 또는 JSON 형식을 체크할 수 있다. JSON_ARRAY( expr [FORMAT JSON], -- JSON 배열에 포함할 값 (JSON 형식인지 지정 가능) expr [FORMAT JSON], -- 추가 값 (콤마로 구분) ... [JSON_on_null_clause] -- NULL 처리 옵션 (NULL ON NULL | ABSENT ON NULL) [J..
오라클 SQL에서 SYSDATE 함수를 사용하여 현재 날짜와 시간을 조회할 수 있다. 그러나 시간을 제외한 날짜만 필요할 때가 있는데, 이럴 때는 TRUNC 함수를 사용하여 시간을 절사 하는 방법과, TO_CHAR 함수를 사용하여 날짜 형식을 문자열로 변환하는 방법이 있다. 상황에 따라서 2가지 방법을 적절히 사용하면 된다. SELECT SYSDATE , TRUNC(SYSDATE) , TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM dual TRUNC(SYSDATE) :TRUNC 함수를 사용하면 날짜 형식에서 시간을 버리고 날짜만 반환한다.반환된 값이 SYSDATE와 동일한 날짜 형식이기 때문에 날짜 형식을 사용해야 할 경우 유용하게 사용할 수 있다. 아래와 같이 WHE..
오라클 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..