오늘도 SQL 코딩 테스트를 쭉 풀다가 새로운 두 함수를 알게되어 소개하고자해요~
오늘의 첫 문제는 아래와 같았어요

저는 처음 보고 아래와 같은 코드를 써서 바로 통과가 되었어요!
SELECT ANIMAL_TYPE,
CASE WHEN NAME IS NULL THEN 'No name'
ELSE NAME END NAME,
SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
다른 사람들은 어떻게 풀었나 보았는데 아래 처럼 푼 사람들이 훨씬 많은거에요!
SELECT ANIMAL_TYPE,
COALESCE(NAME, 'No name') NAME,
SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
여기서 저는 'COALESCE'가 뭔지 몰랐어요 뭔지 모르지만 훨씬 함수가 간단해지는걸 보고 알고싶어져서 알아보았어요~
COALESCE는 주로 정해져있지 않은 NULL값을 변환할때 쓰이더라구요
예를 들어 위 문제에서는 COALESCE(NAME, 'No name') 이라고 함은
NAME 열에 값이 있으면 NAME을 그대로 불러오고, 열에 값이 없으면 NULL 대신 'No name'을 불러오라는 뜻이에요
두번째 문제는 아래와 같았어요

저는 아래와 같은 쿼리로 통과를 하였어요!
SELECT ANIMAL_ID,
NAME,
SUBSTRING(DATETIME,1,10) '날짜'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
여기서 날짜 정보에는 .'2018-01-12 14:20:13' 이런식으로 적혀있었는데 '2018-01-12' 이런 식으로 답을 내라고 하여서 저는 제가 배운 SUBSTRING이란 함수를 이용하여 날짜 열의 앞에서부터 10자리만 가져오는 식으로 풀이를 했어요
근데 다른 사람들의 풀이를 보니 아래와 같이 더욱 간단하게 푸신 분들이 많더라구요!
SELECT ANIMAL_ID , NAME , DATE_FORMAT(DATETIME, '%Y-%m-%d') AS DATETIME
FROM ANIMAL_INS
DATE_FORMAT 이라는 함수를 통해 더욱 좋은 쿼리를 만들 수 있었어요!
아래는 GPT4가 친절히 알려준 설명이에요

아래는 사용 예시입니다!

본 문제에서는 DATE_FORMAT(DATETIME, '%Y-%m-%d') 이렇게 함으로서 DATETIME 정보를 0000년-00월-00일 로만 쉽게 나타낼 수 있었어요~