[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 |