SQL 4편: 문자 함수(LENGTH, SUBSTR, INSTR, REPLACE, LPAD, RPAD, CONCAT, TRIM, LRTIM, RTRIM)
대/소문자 변경 함수
UPPER(s) | 대문자로 변환 |
LOWER(s) | 소문자로 변환 |
INITCAP(s) | 첫 글자는 대문자, 나머지는 소문자로 변환 |
대·소문자 구분 없이 값을 비교할 때 활용할 수 있다.
SELECT *
FROM EMP
WHERE UPPER(ENAME) LIKE UPPER('%scott%');
데이터 길이 반환 함수
LENGTH() | 문자열 길이 반환 |
LENGTHB() | 바이트 수를 반환 |
SUBSTR(문자열, 시작 위치, 추출 길이)
문자열의 일부를 추출하고 싶을 때 사용한다. EX. 11자리의 전화번호 중 마지막 4자리 번호만 필요한 경우
첫 번째 자리는 0이 아닌 1이다.
시작위치에 -를 붙일 경우 맨 마지막 자리가 -1이 된다.
INSTR(대상 문자열, 찾고 싶은 문자, 찾기 시작할 위치(기본값=1), 몇 번째 문자를 찾는지(기본값=1))
찾고 싶은 문자의 위치를 알고 싶을 때 사용한다.
찾기 시작할 위치에 음수를 쓰면 원본 문자열 데이터의 오른쪽 끝부터 왼쪽 방향으로 검색한다.
INSTR 함수의 결과 값이 0보다 크다면, LIKE 연산자를 사용해 %S% 문자열을 찾는 것과 같은 효과를 볼 수 있다.
REPLACE(문자열 데이터or열 이름, 찾는 문자, 대체할 문자(기본값=삭제))
포함된 문자를 다른 문자로 대체할 경우에 사용한다.
010-1111-2222의 -를 없애는 등, 양식 데이터를 삭제하고 싶을 때 유용하다.
LPAD(문자열or열 이름, 자릿수, 빈 공간에 채울 문자(기본값=공백 문자))
RPAD(문자열or열 이름, 자릿수, 빈 공간에 채울 문자(기본값=공백 문자))
Left Padding, Right Padding 을 의미한다. 자릿수를 정해두고, 나머지 공간을 채워야 할 때 사용한다.
데이터의 일부만 노출해야 하는 개인정보를 출력할 때 사용한다. EX. 010-1111-****와 같이 *로 채우는 경우 RPAD를 쓸 수 있다.
CONCAT(문자열1, 문자열2)
'문자열1문자열2' 과 같이 두 개의 문자열 데이터를 하나의 데이터로 연결해 준다.
문자열1 || 문자열2 도 같은 역할을 한다.
TRIM(삭제옵션(기본값=BOTH) 삭제할 문자(기본값=공백 문자) FROM 원본 데이터)
*삭제옵션
LEADING: 왼쪽 첫 문자
TRAILING: 오른쪽 첫 문자
BOTH: 왼쪽, 오른쪽 첫 문자
삭제할 문자를 지정하지 않을 경우 LEADING/TRAILING/BOTH를 무시하고 공백 문자를 모두 지운 결과를 반환한다.
LTRIM(원본 데이터,삭제할 문자 집합 쉼표없이 나열(기본값=공백 문자))
RTRIM(원본 데이터, 삭제할 문자 집합 쉼표없이 나열(기본값=공백 문자))
TRIM은 삭제할 문자를 여러 개 지정할 수 없으므로, 삭제할 문자가 여러 가지인 경우 LTRIM, RTRIM을 사용한다.
삭제할 문자 집합에 속하지 않는 문자가 나올 때 까지 모두 삭제한다.
LTRIM은 왼쪽 부터, RTRIM은 오른쪽 부터 삭제한다.