Oracle DB

문주은·2022년 4월 12일
0

1. 상위 n개

1-1) 12c 이전

SELECT *
  FROM table명
 WHERE rownum <= 5;

1-2) 12c
limit 대신 fetch first n rows only 사용

SELECT *
  FROM table명
 WHERE fetch first 5 rows only;

2. CLOB(string) type의 json 형태 데이터 Load

SELECT * 
  FROM table명
 WHERE json_value(column1, '$.key값');
 
 --* 특정 값을 포함하는 키값을 가진 데이터만 가져올 때
 -- WHERE json_value(column1, '$.key값')='A';

3. 특정 날짜 사이의 데이터 Load

between 보다 > < (부등호)가 더 빠르다

SELECT *
  FROM table명
 WHERE column명 > TO_DATE('2022-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') 
 	   AND 
       column명 < TO_DATE('2022-02-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
       
-- *아래의 방법은 위의 방법보다 속도가 느림!
SELECT *
  FROM table명
 WHERE column명 
  BETWEEN TO_DATE('2022-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') 
          AND 
          TO_DATE('2022-01-02 00:00:00', 'YYYY-MM-DD HH24:MI:SS')

4. case when(if문)

# -- 날짜 별 그룹화 조건에 따른 결과 
SELECT 
  FROM table명
  GROUP BY TO_CHAR(column명, 'YYYY-MM-DD')
profile
Data Engineer

0개의 댓글