반응형
문제의 링크는 아래와 같습니다.
https://programmers.co.kr/learn/courses/30/lessons/59409
해결 SQL문은 아래와 같다. if문을 사용한 정답과 정규식, CASE문을 사용한 정답 두 가지가 있다.
--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
--정규식을 이용과 CASE문 이용
SELECT ANIMAL_ID, NAME,
(CASE WHEN SEX_UPON_INTAKE REGEXP'Neutered|Spayed' THEN 'O' ELSE 'X' END )
AS'중성화'
from ANIMAL_INS
order by ANIMAL_ID
if 문
- if(조건식, 조건식이 참이면 반환되는 값, 조건식이 거짓이면 반환되는 값)
REGEXP
- 정규 표현식을 사용해 패턴을 매칭할 수 있게 도와주는 함수
CASE 문
- WEHN 절에는 참과 거짓을 반환하는 조건식을 기술
- 해당 조건을 만족해 참이 되는 경우는 THEN 절에 기술한 식이 처리.
- 이때 WHEN과 THEN을 한데 조합해 지정할 수 있다.
- 그 어떤 조건식도 만족하지 못한 경우에는 ELSE 절에 기술한 식이 채택된다.
- ELSE는 생략 가능하며 생략할 경우 'ELSE NULL'로 간주된다.
CASE WHEN 조건식 1 THEN 식 1
[WHEN 조건식 2 TEHN 식 2 ...]
[ELSE 식3]
END
이상으로 포스팅을 마칩니다.
참고 자료
SQL 첫걸음(아사이 아츠시 지음, 박준용 옮김)
반응형
댓글