알고리즘

SQL 정리

kyj0032 2024. 2. 28. 17:31

코테 전에 잠시 보는 용도로 기록

 

날짜 column

DATE_FORMAT(col이름, '%Y-%m-%d') AS '날짜'

 

 

여러 개 정렬

ORDER BY col1 DESC, col2 ASC;

 

 

여러 개 group by

GROUP BY A, B

 

 

CASE ~ WHEN 구문

CASE
    WHEN 조건 THEN '단기 대여'
    ELSE '장기 대여'
END

 

 

UNION

union후에 union한 집합을 order by 로 정렬 가능

 

 

날짜 차이 계산

DATEDIFF (종료일, 시작일) +1

 

그냥 string 빼기하면 '2023-01-01' - '2022-12-03' 같은 경우 음수가 나옴

 

 

날짜 BETWEEN

날짜 BETWEEN A AND B

여기서 B는 포함되지 않음

왜냐하면 '2023-12-25' == '2023-12-25 00:00:00'이기 때문에 25 당일날 시간은 포함 안 됨

 

 

반올림

ROUND(123.567, 0)

0째 자리까지 반올림 (==첫째 자리에서 반올림)

 

 

WITH AS 구문

WITH 별명 AS
(
...SQL 문...
)

...SQL 문...

 

DISTINCT

SELECT DISTINCT USER, ...

 

문자열 붙이기

CONCAT('안녕', '하세요')
or
'안녕' + '하세요'

+도 가능하나 문자열에서는 CONCAT 권장