새벽_나그네
12시 지난 새벽
새벽_나그네
전체 방문자
오늘
어제
  • 분류 전체보기
    • TIL
    • DevLog
    • Algorithm
    • ComputerScience
    • etc

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • AI트랙
  • 코딩
  • 내일배움단
  • machine learning
  • til
  • 스파르타코딩클럽
  • 국비지원
  • portfolio
  • TodayILearned
  • 개발일지
  • Github
  • Selenium 4
  • 자기주도학습
  • 코린이
  • 내일배움캠프
  • Python
  • 프로그래머스
  • 내일배움카드
  • docker
  • 코딩프로젝트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
새벽_나그네

12시 지난 새벽

DevLog

[프로그래머스] SQL 중성화 여부 파악하기

2022. 10. 1. 23:33

중성화 여부 파악하기

문제 설명

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

NAMETYPENULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
INTAKE_CONDITION VARCHAR(N) FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_INTAKE VARCHAR(N) FALSE

보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 칼럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요.

 

풀이

코드 블록

SELECT ANIMAL_ID, NAME, IF(SEX_UPON_INTAKE LIKE '%Neutered%' OR SEX_UPON_INTAKE LIKE '%Spayed%','O', 'X') AS "중성화" FROM ANIMAL_INS

이전에 NULL일 경우 필드의 값을 변경하여 출력하는 문제와 비슷한 형태의 문제입니다.

1. 한 가지 다른 점이 있다면 중성화를 한 경우에 대한 판단을 할 때 딱 한 가지 단어로 표현하는 것이 아니고 예제에서만 보아도 'Neutered Male', 'Spayed Female'의 경우로 두 가지로 나타낸다는 다른 점이 있어서 조건을 두 가지를 넣어야 합니다.

- 처음 시도에서 Neutered 관련된 문자열만을 확인하여 검사를 하였는데 실패를 하여서 Spayed를 알아보니 암컷 동물을 중성화시키는 의미가 있다는 것을 알았습니다.

2. 정확히 같은 값이 아닌 비슷한 값을 확인하는 쿼리문으로는 LIKE가 있습니다. '검색할 필드명' LIKE '정규식'의 구조로 사용할 수 있으며 % 확인할 문자열%라고 한다면 앞뒤로 어떤 문자가 들어오던지 상관없이 확인할 문자열이 있으면 참으로 판단하는 구문이 되게 됩니다.

3. 여기에 논리식인 OR를 사용하여 조건문 뒤에 조건을 넣어주도록 합니다. 조건문의 구조는 2번에 설명한 내용과 같습니다.

4. 조건문 구성을 끝낸 후에 ' , '를 이용하여 인자 구분을 해줍니다. 2번째 인자는 참으로 판별되었을 때인 'O'를 출력한다는 내용이며 3번째 인자는 거짓일 경우에는 'X' 출력한다는 내용입니다.

5. 조건문에서 데이터에 따라서 결정된 내용은 "중성화"라는 필드로 출력 값에 전달됩니다.

저작자표시 비영리 변경금지 (새창열림)

'DevLog' 카테고리의 다른 글

[Troubleshooting] selenium 'find_element_by_name' object has no attribute  (0) 2022.10.15
[Troubleshooting] selenium : DeprecationWarning: executable_path has been deprecated  (0) 2022.10.15
[프로그래머스] SQL NULL 처리하기  (0) 2022.10.01
[프로그래머스] SQL 입양 시각 구하기(1)  (0) 2022.09.30
[프로그래머스] SQL DATETIME에서 DATE로 형 변환  (1) 2022.09.30
    'DevLog' 카테고리의 다른 글
    • [Troubleshooting] selenium 'find_element_by_name' object has no attribute
    • [Troubleshooting] selenium : DeprecationWarning: executable_path has been deprecated
    • [프로그래머스] SQL NULL 처리하기
    • [프로그래머스] SQL 입양 시각 구하기(1)
    새벽_나그네
    새벽_나그네
    IT, 프로그래밍, 정보, 스마트스토어

    티스토리툴바