[mysql/oracle] 중성화 여부 파악하기
              
          2023. 1. 29. 02:39ㆍProgrammers/SQL
문제

결과

mysql / oracle
case문
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
 | 
 SELECT animal_id 
       , name 
       , (case 
         when sex_upon_intake like '%Spayed%'  
              or sex_upon_intake like '%Neutered%' then 'O' 
         else 'X'  
         end) 중성화   
from animal_ins 
order by animal_id 
 | 
cs | 
like 덕분에 와일드카드를 이용할 수 있다.
mysql
if문
| 
 1 
2 
3 
4 
5 
6 
 | 
 SELECT animal_id 
       , name 
       , if ( sex_upon_intake like '%Spayed%'  
              or sex_upon_intake like '%Neutered%' , 'O', 'X'  ) 중성화   
from animal_ins 
order by animal_id 
 | 
cs | 
if(조건문, true일 때 값, false일 때 값)
oracle
decode
| 
 1 
2 
3 
4 
5 
 | 
 SELECT animal_id 
       , name 
       , decode(regexp_substr(sex_upon_intake, '[^ ]+',1,1), 'Spayed','O','Neutered','O', 'X' ) 중성화   
from animal_ins 
order by animal_id 
 | 
cs | 
decode에서는 like를 사용할 수 없어 정규식을 사용하였다.
regexp_substr(문자열 or 컬럼명, 문자패턴조건, 시작 위치, 시작에서부터 몇 개나 자를지 개수)'Programmers > SQL' 카테고리의 다른 글
| [mysql/oracle] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2023.01.29 | 
|---|---|
| [mysql/oracle] 카테고리 별 상품 개수 구하기 (0) | 2023.01.29 | 
| [mysql/oracle] 이름에 el이 들어가는 동물 찾기 (0) | 2023.01.28 | 
| [mysql/oracle] 강원도에 위치한 생산공장 목록 출력하기 (0) | 2023.01.28 | 
| [mysql/oracle] 이름이 없는 동물의 아이디 (0) | 2023.01.28 |