[Oracle SQL] 내 코딩테스트를 위한 Function, 일부 Query모음

dOcOb·2023년 3월 3일
0

Oracle SQL

목록 보기
1/1

1. Function


Math Funtion

  • length : 인자로 전달된 데이터의 길이 값을 반환하는 함수.
  • instr : 문자열 안에서 문자를 찾는 함수.
  • substr : 문자열에서 문자열 추출.
  • dintinct : 중복 제거.
  • abs : absolute, 절대값 구하는 함수.
  • MOD : 나머지를 구하는 함수.
  • round : 반올림 함수.
  • floor : 소수점 아래로 버림 함수.
  • trunc : 원하는 위치에서 버림 함수.
  • ceil : 정수로 올림.

Date Function

  • sysdate : 현재 날짜 + 현재 시간을 가지는 값을 반환.
  • months_between : 인자로 전달 된 두 날짜 사이의 개월 수를 반환하는 함수.
  • add months : 첫번째 인자 날짜에, 두번째 인자 숫자 개월 수를 더하여 반환.
  • next_day : 인자로 전달받은 날짜에, 인자로 전달받은 요일 중 가장 가까운 다음 요일의 날짜를 반환.
  • last_day : 인자로 전달받은 날짜가 속해있는 달의 가장 마지막 일 날짜를 반환.
  • EXTRACT : 날짜 값으로부터 연/월/일/ 값을 독립적으로 추출하여 반환.
  • to_char : 숫자 또는 날짜를 문자열로 바꾸는 함수.
  • to_date : 숫자 또는 문자열을 날짜로 바꾸는 함수.




2. Query


① 비교 조건

LIKE

  • % _
  • NOT LIKE
  • ESCAPE

BETWEEN

IS NULL

regex 사용법



② 문자 관련

||

SELECT 문자열||문자열 FROM DUAL;
-> 문자열문자열



③ TOP-N (순위 기법)

rank() over()

공동순위가 있으면 그 다음 순위가 인원수 만큼 공백이 생김.

  • 예시
    select 
        emp_id, 
        emp_name, 
        salary,
        rank() over(order by salary desc) "급여 순위"
    from employee;

dense_rank() over()

공동 순위가 있어도 순위의 공백이 없음.

  • 예시
    select 
        emp_id, 
        emp_name, 
        salary,
        dense_rank() over(order by salary desc) "급여 순위"
    from employee;

row_number() over()

순위 표대로 행번호 붙히기

  • 예시
    select 
        emp_id, 
        emp_name, 
        salary,
        row_number() over(order by salary desc) "급여순위"
    from employee;
profile
반은 해야 시작이다.

0개의 댓글