문자열에서 대소문자 구분없애기 - upper, lower, initcap

2023. 1. 29. 00:55DB

sql에서 문자열을 다루다보면 마주하는 여러가지 상황이 있다.

  • 대소문자의 구분을 없애야 하는 경우
  • 소문자로 들어온 데이터들의 값을 대문자로 바꾸어야하는 경우
  • 소문자로 이루어진 문자열의 첫 글자를 대문자로 바꾸어야 하는 경우

이를 해결할 수 있는 문법 3가지를 설명하는 글이다.

1. upper

문자열을 대문자로 바꿔주는 기능이다.

upper('문자열') or upper(컬럼명)

ex)

1
2
SELECT name, upper(name) upper_name
from animal_ins
cs

1-1. ucase(mysql)

mysql 문법으로 upper와 같은 역할

 

1
2
SELECT name, upper(name) upper_name
from animal_ins

 

2. lower

문자열을 소문자로 바꿔주는 기능이다.

lower('문자열') or lower(컬럼명)

ex)

1
2
SELECT upper(name) upper_name, lower(name) lower_name
from animal_ins
cs

 

3. initcap(oracle)

문자열에서 첫문자를 대문자로 바꿔주는 기능이다.

initcap('문자열') or initcap(컬럼명)

ex)

1
2
SELECT upper(name) upper_name, initcap(name) initcap_name
from animal_ins
cs

이는 오라클에서만 지원해주는 문법이고 같은 기능은 mysql에는 없다.

mysql에서 첫문자만 대문자로 변환한다면 upper와 lower를 조합해서 사용하면 된다.

1
2
3
SELECT lower(name) lower_name, 
        concat(upper(substr(name, 1,1)), lower(substr(name,2))) name
from animal_ins
cs