문제
MySQL
: 대소문자 구분하지 않아도 됨
내가 작성한 정답1 - like
select distinct city
from station
where city not like '%a' and city not like '%e' and city not like '%i' and city not like '%o' and city not like '%u';내가 작성한 정답2 - 정규표현식
select distinct city
from station
where city not regexp '[aeiou]$';내가 작성한 정답3 - substring, substr 둘 다 사용가능
select distinct city
from station
where substr(city,-1,1) not in ('a','e','i','o','u');
    
select distinct city
from station
where substring(city,-1,1) not in ('a','e','i','o','u');내가 작성한 정답4 - right
select distinct city
from station
where right(city,1) not in ('a','e','i','o','u');Oracle
: 대소문자 구분 필요
내가 작성한 정답1 - like
select distinct city
from station
where city not like '%a' and city not like '%e' and city not like '%i' and city not like '%o' and city not like '%u';내가 작성한 정답2 - 정규표현식 regexp_like
select distinct city
from station
where not regexp_like(lower(city),'[aeiou]$');내가 작성한 정답3 - substr
select distinct city
from station
where substr(city,-1,1) not in ('a','e','i','o','u');MS SQL Server - MySQL과 유사
: 대소문자 구분 x
내가 작성한 정답1 - like
select distinct city
from station
where city not like '%a' and city not like '%e' and city not like '%i' and city not like '%o' and city not like '%u';내가 작성한 정답2 - like2
select distinct city
from station
where city not like '%[aeiou]';내가 작성한 정답3 - right
select distinct city
from station
where right(city,1) not in ('a','e','i','o','u');DB2 - Oracle과 유사
내가 작성한 정답 - like
select distinct city
from station
where city not like '%a' and city not like '%e' and city not like '%i' and city not like '%o' and city not like '%u';정리!
| DBMS | 문자추출 | left 유무 | 정규표현식 | 
| MS SQL Server | substring - 음수지원 X | o | x → like로 표현가능 | 
| MySQL | substring - 음수 지원 | o | o → regexp | 
| Oracle | substr - 음수 지원 | x | o → regexp_like(colunm,정규식) | 
| DB2 | substr - 음수 지원 X | x | x → substr로 표현가능 | 
Share article

