SQL 문제 - 중성화 여부 파악하기 (IF, REGEXP, CASE)

2022. 4. 30. 10:38·코딩테스트/프로그래머스
반응형

문제의 링크는 아래와 같습니다.

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

 

코딩테스트 연습 - 중성화 여부 파악하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

해결 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 첫걸음(아사이 아츠시 지음, 박준용 옮김)

 

반응형
'코딩테스트/프로그래머스' 카테고리의 다른 글
  • SQL 문제 - 우유와 요거트가 담긴 장바구니
  • SQL 문제 - 헤비 유저가 소유한 장소(Self-Join)
  • SQL 문제 - 동명 동물 수 찾기 (GROUP BY, HAVING)
  • SQL 문제 - 오랜 기간 보호한 동물
Debin
Debin
공부 기록을 남기며 게시글 리팩토링을 진행하는 블로그입니다.
  • Debin
    리팩토링하는 블로그
    Debin
  • 전체
    오늘
    어제
    • 분류 전체보기
      • DB
        • DB 기초
        • MySQL
        • SQL 튜닝
      • OS
      • Network
      • Git
      • 디지털콘텐츠기획
      • 소프트웨어공학
      • 코딩테스트
        • 프로그래머스
        • 백준
        • 인프런
      • 공부 일지
      • 독서
        • 클린코드
        • 일상 속 사물이 알려주는 웹 API 디자인
        • 토비의 스프링
        • 객체지향의 사실과 오해
        • 자바 잘 읽는 법
      • 기록 및 회고
      • Cloud
        • AWS
      • 개발
        • Java
        • Spring Core
        • Spring MVC
        • Spring DB
        • Spring Boot
        • Spring Security
        • Spring Batch
        • JPA
        • Test
        • Android
      • 대외활동
        • UMC SERVER
        • 카엔프 SW 아카데미
      • 프로젝트
      • Docker
      • Gradle
      • ELK
      • 실무 이야기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

    • 본인 깃허브입니다!
  • 인기 글

  • 태그

    test
    프록시
    ORM
    트랜잭션
    토비의 스프링
    Java
    AOP
    자바
    스프링
    객체
    컨테이너
    도커
    스프링 부트
    SQL
    innodb
    JPA
    AWS
    객체지향
    리눅스
    container
    redis
    운영체제
    docker
    데이터베이스
    인덱스
    spring mvc
    코딩 #개발자 #노마드북클럽 #노개북
    spring boot
    spring
    mysql
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Debin
SQL 문제 - 중성화 여부 파악하기 (IF, REGEXP, CASE)
상단으로

티스토리툴바