문제 설명
예시
풀이 방법
보호소 동물의 중성화 여부를 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 쿼리를 작성하는 문제입니다. 이때 중성화가 되어 있다면 'O', 아니라면 'X'로 표시 합니다. 이를 위해 SELECT절에 조회할 컬럼명을 우선 선정해 봅니다. 동물의 아이디, 이름, 중성화 여부. 동물의 아이디와 이름은 ANIMAL_ID와 NAME으로 표현하면 됩니다. 그러나 중성화 여부는 CASE문을 작성하여 중성화 여부를 판별하고, 그에 맞는 문자로 표시하는 것까지 해봅시다. 우선 CASE문의 사용법을 알아봅시다.
CASE
WHEN 조건 THEN 반환값
WHEN 조건 THEN 반환값
ELSE 'WHEN 조건에 해당 안되는 경우 반환값'
END
WHEN - THEN은 한쌍이며, 다수가 존재 할 수 있습니다. ELSE가 존재하면 모든 WHEN조건에 해당하지 않을 경우 반환값을 설정할 수 있습니다. 만약 ELSE가 없다면 WHEN조건에 해당하지 않는 경우는 NULL을 반환합니다. 이 후 END를 써서 CASE문을 닫습니다. 이를 활용하여 아래 문제 풀이와 같이 해당 문제를 풀어보았습니다.
문제 풀이
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
실행 결과
'코딩테스트 > SQL' 카테고리의 다른 글
[프로그래머스] String, Date 〉Lv2. DATETIME에서 DATE로 형 변환 (0) | 2021.10.29 |
---|---|
[프로그래머스] String, Date 〉Lv3. 오랜 기간 보호한 동물(2) (0) | 2021.10.28 |
[프로그래머스] String, Date 〉Lv2. 이름에 el이 들어가는 동물 찾기 (0) | 2021.10.26 |
[프로그래머스] String, Date 〉Lv2. 루시와 엘라 찾기 (0) | 2021.10.25 |
[프로그래머스] JOIN 〉Lv4. 보호소에서 중성화한 동물 (0) | 2021.10.24 |
댓글