아래 내용은 MYSQL을 기준으로 작성하였습니다
문제 요약
이름의 null 값은 No name으로 바꾸고,
동물의 생물 종, 이름, 성별, 중성화여부를 아이디 순으로 조회해햐 하는 문제이다
이 문제의 핵심은 NULL 값을 처리하는 것!
따라서 NULL 값을 처리해주는 함수를 사용해야 한다
NULL과 관련된 함수
1. IFNULL
IFNULL 함수는 컬럼에 있는 해당 컬럼의 NULL값을 다른 값으로 바꾸어주는 함수이다
SELECT IFNULL(컬럼명, "NULL인 경우 바꿀 값")
FROM 테이블 명
IFNULL을 사용한 정답
더보기
SELECT ANIMAL_TYPE, IFNULL(NAME, "No name") NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
2. ISNULL
ISNULL 함수는 컬럼의 값이 NULL이면 1을 반환하고 아니면 0을 반환해주는 함수이다
SELECT ISNULL(컬럼명)
FROM 테이블명
3. IF
IF 함수는 표현식이 참이면 value1을 반환하고 거짓이면 value2를 반환하는 함수이다
SELECT IF(표현식, value1, value2)
FROM 테이블명
IF를 사용한 정답
더보기
SELECT ANIMAL_TYPE, IF(NAME IS NULL, "No name", NAME) NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
4. CASE WHEN ~THEN~
CASE 함수는 조건식이 참이면 value1을 반환하고 거짓이면 value2를 반환한다.
when을 여러 개 사용해서 여러 조건을 사용할 수 있다(python의 if~elif와 비슷한 기능)
SELECT CASE WHEN 조건 THEN value1
ELSE value2 END
FROM 테이블명
CASE를 사용한 정답
더보기
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
5. COALESCE
COALESCE는 컬럼1이 NULL이면 컬럼2를 탐색하고, 만약 컬럼2가 NULL이 아니면 컬럼 2의 값을 반환한다
만약 모든 컬럼이 NULL이라면 마지막 값을 반환한다.
COALESCE(컬럼1, 컬럼2, ... , NULL이 아닌 값)
COALESCE를 사용한 정답
더보기
SELECT ANIMAL_TYPE,
COALESCE(NAME, "No name") NAME,
SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
오늘부터는 SQL주차의 시작이라 SQL 코드카타를 풀었다!
SQL이 낯설기도 하고 항상 파이썬만 해서 파이썬 문법에 너무 익숙해져버렸기 때문에 쉬운 문제임에도 자주 틀린다..
좀 더 SQL 문법에 익숙해질 수 있도록 꾸준히 문제를 풀어봐야겠다..!
'[내일배움캠프]스파르타코딩클럽 AI 웹개발 > Today I Learned' 카테고리의 다른 글
[TIL] global과 nonlocal with python (0) | 2024.08.03 |
---|---|
[내일배움캠프 30일차 TIL] SQL - 날짜 및 시간 (0) | 2024.08.02 |
[내일배움캠프 28일차 TIL] 소프트웨어 문서 (0) | 2024.07.31 |
[내일배움캠프 27일차 TIL] 빅데이터 및 인공지능 (1) | 2024.07.30 |
[내일배움캠프 26일차 TIL] 프로토콜 (0) | 2024.07.29 |