본문 바로가기

Database/MySQL

[DB문법] 날짜&시간, case when, null값 처리

SELECT _with절

https://dbaant.tistory.com/22

 

[MYSQL] With 절 사용 방법

MySQL에서 'WITH'절은 서브쿼리를 만들고 재사용 가능한 공통 테이블 표현식(Common Table Expression, CTE)을 정의하는 방법입니다. WITH절을 사용하여 쿼리를 단순화하고 가독성을 높일 수 있습니다. 다음

dbaant.tistory.com

 

UNION(DISTINCT), UNION ALL

https://sewonzzang.tistory.com/45

 

[SQL] UNION / UNION ALL, WITH

UNION / UNION ALL UNION : 조회한 다수의 SELECT문을 하나로 합치고 싶을 때 유니온(UNION)을 사용할 수 있습니다. UNION은 UNION (DISTINCT)와 UNION ALL 문 두 가지가 있습니다. UNION (DISTINCT) : 중복되는 레코드를

sewonzzang.tistory.com

 


 

* MySQL 날짜&시간 데이터타입

DATETIME : YYYY-MM-DD hh:mm:ss  ( 현재날짜 : now()  )

DATE : YYYY-MM-DD

TIMESTAMP : YYYY-MM-DD hh:mm:ss , 자동 업데이트

TIME : hh:mm:ss

YEAR : YYYY

 


 

* 날짜형식변환

DATE_FORMAT()

STR_TO_DATE()

UNIX_TIMESTAMP()

FROM_UNIXTIME()


* DATE_FORMAT 참고

 


 

* case when 조건문

 

SELECT

case when 조건1 then 반환값1

         when 조건2 then 반환값2

          else 반환값3

end as Name

FROM Table


 

SUM (case when 조건 then 반환값1 elas 반환값2 end)

=> 조건에 해당하는 값의 count를 셀 때 반환값1 대신 1, 반환값2 대신 0 을 넣어주면 된다. ***

 


 

[ null 값 처리 ]

 

* IFNULL : 해당 column의 값이 null을 반환할 때, 다른 값을 출력하도록 지정하는 함수.

SELECT IFNULL ( column명, "대체값" ) FROM Table

 

** null값과 공백 둘 다 처리 ** 

IFNULL ( column명, ' ' )  !=  ' '

=> IFNULL함수를 통해 NULL인 경우를  ' ' (공백)으로 반환하고,  ' ' (공백) 이 아닌 값들만 선택.

 


* IF & IS NULL 

SELECT IF ( IS NULL(column명), "True반환값", "False반환값" ) FROM Table


* CASE (WHEN .. THEN .. ELSE .. ) END


* COALESCE : 처음으로 만나는 NULL이 아닌 값을 출력.

SELECT COALESCE ( column명, "대체값" ) FROM Table

SELECT COALESCE ( column1, column2, column3, column4 ) FROM Table

=> column1 ~ column4 중 NULL이 아닌 첫 번째 column을 출력

 


 

* SUBSTRING, SUBSTR 문자열추출