SQL) 문자열 다루기 2
LOCATE(...), LEFT(...), RIGHT(...), LOWER(...), UPPER(...)
LOCATE(sub_str, str)
: 문자열에서 어떠한 문자열이 처음 나오는 곳의 index 값을 출력한다.
LOCATE('aba', 'bcbababac')
= 'bcbababac' 문자열에서 'aba' 문자열이 처음 나오는 곳의 index
= 4
위 문자열 'bcbababac' 에서 'aba' 문자열이 처음 나오는 곳의 index 는 4 이다. 이 때 주의해야 할 점은, 대부분의 프로그래밍 언어에서 배열의 첫 시작 index는 0 이다. 하지만 MySQL 에서는 0이 아닌 1부터 시작한다.
SELECT LOCATE('aba', 'bcbababac') AS Locate
FROM DUAL;
LEFT, RIGHT
: 문자열에서 좌측, 우측에서부터 원하는 길이만큼의 문자열을 출력한다.
LEFT('abcdefg', 3)
= 'abcdefg' 문자열에서 좌측으로부터 3의 길이를 가지는 문자열
= 'defg'
RIGHT('abcdefg', 3)
= 'abcdefg' 문자열에서 우측으로부터 3의 길이를 가지는 문자열
= 'abcd'
SELECT LEFT('abcdefg', 3) AS Left_3,
RIGHT('abcdefg', 3) AS Right_3
FROM DUAL;
LOWER, UPPER
: 문자열을 모두 소문자/대문자로 변경한 문자열을 출력한다.
LOWER('Hi, This is David')
= 'hi, this is david'
UPPER('Hi, This is David')
= 'HI, THIS IS DAVID'
SELECT LOWER('Hi, This is David') AS To_lower,
UPPER('Hi, This is David') AS To_upper
FROM DUAL;
LOWER 를 사용했을 땐, 대문자로 입력이 되어있는 문자들은 모두 소문자로 바뀐 뒤 출력이 되었고, UPPER 를 사용했을 땐 소문자로 입력이 되어있는 문자들은 모두 대문자로 바뀐 뒤 출력이 되었다.
728x90
'Data Base > SQL' 카테고리의 다른 글
MySQL) AUTO_INCREMENT (0) | 2022.01.04 |
---|---|
MySQL) 층간 합계 (ROLLUP) (0) | 2021.12.28 |
SQL) 문자열 다루기_1 (LENGTH/CONCAT/SUBSTRING) (0) | 2021.09.10 |
SQL) 순위함수(RANK, DENSE_RANK, ROW_NUMBER) (0) | 2021.09.03 |
SQL) You can't specify target table '<Table>' for update in FROM clause (0) | 2021.09.02 |
댓글