문자열의 길이 출력하기 (LENGTH)
문자열 길이를 출력하는 방법
-- 이름을 출력하고 그 옆에 이름의 철자 개수를 출력하기
SELECT [컬럼명...], LENGTH(컬럼명)
FROM [테이블명]
-- 한글 길이 출력
SELECT LENGTH('가나다라') -- 결과 4
FROM DUAL;
-- BYTE 단위로 출력
SELECT LENGTHB('가나다라') -- 결과 12
FROM DUAL;
- LENGTH 함수는 문자열의 길이를 출력하는 함수다. LENGTH(컬럼명)는 컬럼에 해당하는 데이터의 철자의 개수가 출력된다. ( 한글도 문자의 길이가 출력된다. )
- 한글은 1글자당 3BYTE가 들어간다.
문자열에서 특정 철자 위치 출력하기 (INSTR)
문자에서 특정 철자의 위치를 출력하는 방법
-- 특정 컬럼에서 특정 철자의 위치 찾기
SELECT INSTR(특정값, 찾을위치) -- 결과 2
FROM DUAL;
-- 특정 컬럼에서 특정값 위치를 통해 특정값 추출하기
-- 해당 값의 다음 자리부터 추출해야하니 +1 해준다.
SELECT SUBSTR(특정값, INSTR(특정값, 찾을값)+1)
FROM DUAL;
-- 특정 위치의 특정 값 추출하고 특정 값을 자르고 출력하기
SELECT RTRIM(SUBSTR(특정값, INSTR(특정값, 찾을값)+1), 자를값)
FROM DUAL;
예시..
a | b | c | d | e | f | @ | n | a | v | e | r | . | c | o | m |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
- 특정 컬럼 특정 철자 위치 : 7
- 특정 컬럼에서 특정값 위치를 통해 특정값 추출하기 결과 : naver.com
- 특정 위치의 특정값 추출하고 특정값을 자르고 출력하기 결과 : naver
특정 철자를 다른 철자로 변경하기 (REPLACE)
문자에서 특정 철자를 다른 철자로 변경하는 방법
-- 특정 컬럼의 데이터를 출력할때, 특정 값을 특정 값으로 변경해 출력하기
SELECT [컬럼명...], REPLACE(컬럼명, 찾을값, 변경할값)
FROM [테이블명]
-- 특정 컬럼의 데이터를 출력할때, 특정 값의 범위를 특정 값으로 변경해 출력하기
SELECT [컬럼명...], REGEXP_REPLACE(컬럼명, 정규표현식, 변경할값)
FROM [테이블명]
-- 특정 값의 위치에 해당하는 값을 특정 값으로 변경 출력하기
SELECT REPLACE(컬럼명, SUBSTR(컬럼명,찾을값의 위치(자리수), 몇자리), 변경할 값)
FROM [테이블명]
- REPLACE 함수는 특정 철자를 다른 철자로 변경하는 문자 함수다.
- REGEXP_REPLACE는 정규표현식이다. 정규식 함수는 일반함수보다 더 복잡한 형태의 검색패턴으로 데이터를 조회할 수 있게 해주는 함수다.