날짜
DATE_FORMAT(SYSDATE, FORMAT 문자)
날짜를 원하는 문자열 형태로 변환하도록 하는 메서드이다.
SELECT DATE_FORMAT(HIRE_DATE, '%Y-%m-%d') AS HIRE_DATE
FROM DOCTOR
포맷문자
TIME(SYSDATE)
날짜에서 시,분,초 만을 추출할 수 있다.
이를 통해 특정 시간의 구간을 조건문으로 사용할 수 있다.
SELECT DATE_FORMAT(DATETIME, '%H') AS HOUR
FROM ANIMAL_OUTS
WHERE **TIME(DATETIME) >= '09:00:00' AND TIME(DATETIME) <= '19:59:00'**
DATEDIFF(END_DATE, START_DATE)
두 날짜 간의 일수 차이를 구할때 사용된다.
SELECT CASE WHEN **DATEDIFF(END_DATE, START_DATE)** + 1 >= 30 THEN '장기 대여' ELSE '단기 대여' END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE DATE_FORMAT(START_DATE, '%Y-%m') = '2022-09'
ORDER BY HISTORY_ID DESC
문자열
SUBSTRING(STRING, START, LENGTH),
LEFT(STRING, LENGTH),
RIGHT(STRING, LENGTH)
SUBSTRING()
은 문자열을 start부터 length를 기준으로 잘라낸 나머지 문자열을 반환한다.
SELECT SUBSTRING('WWW.GOOGLE.COM', 3) # 'W.GOOGLE.COM'
SELECT SUBSTRING('WWW.GOOGLE.COM', 3, 5) # 'W.GOO'
LEFT()
는 문자열에서 왼쪽 length만큼의 문자열을 반환한다.
SELECT LEFT('WWW.GOOGLE.COM', 3) # 'WWW'
RIGHT()
는 문자열에서 length만큼의 문자열을 반환한다.
SELECT RIGHT('WWW.GOOGLE.COM', 5) # 'E.COM'
LIKE
문자열이 구분자로 이루어져 있을 경우 특정 문자가 포함되어 있는지를 확인할 수 있다.
WHERE
절에서 사용할 수 있다.
특정 문자가 들어가는 데이터 검색
SELECT CAR_TYPE
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE '**%통풍시트%**'
특정 문자로 시작하는 데이터 검색
SELECT CAR_TYPE
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE '**통풍시트%**'
특정 문자로 끝나는 데이터 검색
SELECT CAR_TYPE
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE '**%통풍시트**'
CONCAT(STRING,…,RECORD,..)
문자열과 데이터들의 값들을 원하는 문자열 형태로 출력하도록 할때 사용한다.
SELECT **CONCAT('/home/grep/src/',A.BOARD_ID,'/',B.FILE_ID,FILE_NAME,FILE_EXT)** AS FILE_PATH
FROM USED_GOODS_BOARD AS A
INNER JOIN USED_GOODS_FILE AS B
ON A.BOARD_ID = B.BOARD_ID
WHERE A.VIEWS IN (
SELECT MAX(VIEWS)
FROM USED_GOODS_BOARD AS A
INNER JOIN USED_GOODS_FILE AS B
ON A.BOARD_ID = B.BOARD_ID
)
ORDER BY B.FILE_ID DESC
반올림, 내림
ROUND(NUMBER, DIGIT),
TRUNCATE(NUMBER, DIGIT)
ROUND()
는 숫자를 반올림하고 싶을 때 사용한다.
- 반올림할 자릿수 + 1에서 반올림한다.
SELECT ROUND(AVG(DAILY_FEE)) AS ACERAGE_FEE
TRUNCATE()
는 숫자를 버리고 싶을 때 사용한다.
- 버릴 자릿수 + 1에서 버린다.
SELECT TRUNCATE(AVG(DAILY_FEE), 1) AS ACERAGE_FEE
중복
DISTINCT
중복되는 것은 하나로 합칠때 사용한다.
SELECT COUNT(DISTINCT NAME)
FROM ANIMAL_INS
IS NULL
ISNULL(COL)
해당 column이 null인지를 판별할때 사용한다.
SELECT NAME
FROM ANIMAL_INS
WHERE !ISNULL(NAME)
IFNULL(COL, EXPRESSION)
출력 데이터에서 null인 값을 특정 표현식으로 출력하도록 하는 메서드이다.
SELECT IFNULL(TLNO, 'NONE') AS TLNO
FROM PATIENT
첫번째는 null을 체크할 칼럼을 넣고 두번째는 null일경우 표현하고 싶은 출력문을 기재한다.
'🤯 코딩테스트 > SQL' 카테고리의 다른 글
[SQL] 년, 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2024.02.22 |
---|---|
[SQL] 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2024.02.22 |
[SQL] 조건별로 분류하여 주문상태 출력하기 (0) | 2024.02.15 |
[SQL] 자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2024.02.15 |
[SQL] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2024.02.15 |