#45. STRING, DATE : 중성화 여부 파악하기 | 프로그래머스 | SQL 고득점 Kit

문제

 

입력 코드

1. 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;

 

2. IF

SELECT 
    ANIMAL_ID, NAME,
    IF(SEX_UPON_INTAKE LIKE '%NEUTERED%' 
        OR SEX_UPON_INTAKE LIKE '%SPAYED%','O','X') AS '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC;

 

3. 정규식

SELECT
    ANIMAL_ID, NAME,
    IF(SEX_UPON_INTAKE REGEXP ('Neutered|Spayed'),'O','X') AS 중성화
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

 

4. LOCATE

SELECT ANIMAL_ID, NAME,
    IF(LOCATE("Intact", SEX_UPON_INTAKE), "X", "O") AS 중성화
FROM ANIMAL_INS;

 

LOCATE(substr, str, [pos]) 함수

  • 검색하고자 하는 서브 스트링 substr을 str에서 검색하고, 해당 substr이 나타나는 위치를 반환함
  • 만약 substr이 str에 없는 경우 0을 반환함
  • pos는 선택적으로 넣을 수 있는 값으로, 해당 인자에 값을 주게 되면 해당 인자의 위치에서부터 검색을 시작함

 

 

코드 설명

#SELECT #CASE #WHEN #ELSE #LIKE #ORDER  BY #IF #REGEXP #LOCATE

 

 

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/59409