오늘의 코드카타 문제
보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요.
여기서 표현해야 할 컬럼은
ANIMAL_ID, NAME 그리고 SEX_UPON_INTAKE이다.
조건으로는 중성화 여부를 확인하고 O 또는 X로 표시하며, 아이디 순으로 정렬을 하는 것이다.
이때, 아직은 배우지 않은 조건문을 사용을 하여서 문제풀이를 해야한다.
SELECT ANIMAL_ID, NAME,
IF(SEX_UPON_INTAKE LIKE "%Neutered%" OR SEX_UPON_INKAKE LIKE "%Spayed%" , 'O', 'X')
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
이것은 IF문을 사용한 것으로
IF(조건 , 조건이 참 일시 값, 조건이 거짓일 시 값) 으로 적을 수 있다.
하지만 만약 참 과 거짓 으로만 나눌 수 없는 문제가 나올 시에는 CASE를 사용 할 수 있다.
SELECT ANIMAL_ID, NAME,
CASE WHEN SEX_UPON_INTAKE LIKE '%Neutered%' THEN 'O'
WHEN SEX_UPON_INTAKE LIKE '%Spayed%' THEN 'O'
ELSE 'X' END AS 중성화
FROM ANIMAL_INS ORDER BY ANIMAL_ID;
또는
SELECT ANIMAL_ID, NAME,
CASE WHEN SEX_UPON_INTAKE LIKE '%Neutered%'
OR SEX_UPON_INTAKE LIKE '%Spayed%' THEN 'O'
ELSE 'X' END AS 중성화
FROM ANIMAL_INS ORDER BY ANIMAL_ID;
이렇게 CASE를 사용 할 수 있다.
CASE 문은 CASE 아래에 WHEN 조건 THEN 값 ~~~~ ELSE 값 END 컬럼명 이렇게 나타낼 수 있다.
'Daily 코드카타 > SQL' 카테고리의 다른 글
코딩테스트 SQL 코드 카타 2024-09-23 (0) | 2024.09.23 |
---|---|
코딩테스트 SQL 코드 카타 2024.09.20 (0) | 2024.09.20 |
코딩테스트 SQL 코드카타 2024.09.19 (0) | 2024.09.19 |
코딩테스트 SQL 코드 카타 2024.09.16 (0) | 2024.09.16 |
코딩테스트 SQL 코드 카타 (2024 - 09 - 13) (0) | 2024.09.13 |