DB/Oracle

[Oracle] SQL 문자 함수

노 코딩 노 라이프 2024. 3. 27. 23:30
함수 내용
LOWER 대상 문자열을 모두 소문자로 변환
UPPER 모든 문자를 대문자로 변경함
INITCAP 문자열 단어의 첫 문자는 대문자 나머지는 소문자로 변경함
CONCAT(s1, s2) 두 문자열을 연결
SUBSTR(s, m, n) 문자열 중 지정한 위치에서 지정한 길이만큼의 문자열을 추출
INSTR(s1, s2, m, n) 문자열 내의 특정 문자열의 위치를 숫자로 표시
LENGTH(s) 문자의 길이를 숫자 값으로 표시
CHR(n) ASCII 코드 값이 n인 문자 반환
ASCII(s) s문자의 ASCII 코드값 반환
LPAD(s1, n, s2) 문자열을 제외한 왼쪽 공간에 지정한 문자로 채움 
RPAD(s1, n, s2) 문자열을 제외한 오른쪽 공간에 지정한 문자로 채움
LTRIM(s,c) 대상 문자열의 오른쪽부터 지정한 문자들을 제거 
RTRIM(s,c) 대상 문자열의 왼쪽부터 지정한 문자들을 제거
TRIM 앞, 뒤에 나오는 특정 문자를 제거 
TRANSLATE(s, from, to) 첫 문자는 탐색집합의 첫 문자로 대체(2번째도 동일)
REPLACE(s,p,r) 특정 문자열을 다른 문자열로 대체 

 

LOWER / UPPER

- 영문자를 모두 소문자로/대문자로 변경한다. 

 

INITCAP(char)

INITCAP 함수 : 파라미터인 char의 첫 문자를 대문자로 바꾸는 함수

- 반환되는 데이터 타입은 파라미터 타입과 동일한 타입을 반환

- 첫 문자만을 대문자로 변환하며 나머지 문자들은 대소문자 관계없이 모두 소문자로 변환

- INITCAP 함수가 인식하는 첫 문자는 파라미터로 들어오는 문자열에서 문자 구분자(delimiter)로 구분되는 첫 문자 모두를 말한다. 

- 문자 구분자가 될 수 있는 것은 일반적으로 공백이나 탭에 해당되는데 INITCAP 함수에서는 이외에도 알파벳 문자가 아닌 문자 모두를 구분자로 인식

 

LENGTH(char)

LENGTH : 길이, LENGTHB : 바이트 수를 반환 

 

SUBSTR(char, position, length)

SUBSTR 함수 : 문자열의 일부분을 떼어내는 기능을 하는 함수

- char 문자열에서 position으로 지정된 위치로부터 length개의 문자를 떼어 내어 그 결과를 반환

- postion 값을 0으로 명시한 경우 -> 그 위치 값은 디폴트로 1이 적용되어 문자열의 맨 왼쪽 첫 번째 자리부터 length만큼 문자열을 잘라내게 된다.

- Postion 값이 음수인 경우에는 그 위치가 왼쪽이 아니라 오른쪽부터 시작

ex) position값이 -2일 경우 문자열 맨 오른쪽 두번째 자리부터 문자를 잘라내게 된다.

- Length 값이 1보다 작을 경우에는 null을 반환하고, length 생략 시 postion으로 지정된 위치부터 문자열의 끝까지를 반환

**length는 1부터 시작

 

SUBSTRB(char, position, length)

- substr 함수와 기능은 동일하지만 length로 명시된 숫자만큼은 문자 개수를 잘라내는 것이 아니라 문자열의 바이트 수를 잘라내어 그 결과를 반환

 

INSTR(string, search_string, postion, occurrence)

NSTR 함수 : 대상 문자열을 찾아 그 위치를 반환하는 함수

- string : 대상 문자열

- search_string : 찾는 문자열

- position : 문자열을 찾는 시작 위치

- occurrence : 몇 번째 인지를 명시

** position과 occurrence : 생략 가능하며 디폴트 값은 1이 된다.

 

ASCII(CHAR)

- CHAR는 일반적으로 문자 하나여야 하지만 문자열 형태로 들어오는 경우 결과는 맨 처음 문자의 ASCII 코드 값만 반환

 

CHR(n)

ASCII 값이 n에 해당되는 문자를 리턴 

 

LPAD(expr1, n, [expr2])

LPAD 함수 : expr1을 n 자리만큼 문자열 길이로 만들어 변환하는 함수

- expr1 자릿수가 n보다 작을 경우 n-expr1의 길이만큼을 expr2로 들어오는 문자열로 왼쪽을 채워 반환

- expr2를 생략할 수도 있는데 생략할 경우 공백문자가 기본 적용

 

RPAD(expr1, n, [expr2])

- LPAD 함수와 동일하지만 채우는 위치가 왼쪽이 아니라 오른쪽이 된다.

 

LTRIM(char [,set])

LTRIM : 파라미터인 char에서 set으로 지정된 문자를 가장 왼쪽 끝에서 제거한 결과를 반환하는 함수

- Set 생략시 기본값은 공백문자로 적용

 

RTRIM(char [,set])

- RTRIM도 LTRIM과 기능이 같으나 파라미터로 들어온 문자열을 왼쪽이 아니라 오른쪽 끝에서 제거한다.

 

TRIM([LEADING, TRAILING, BOTH] [,trim_char] [FROM] trim_source)

TRIM 함수 : 문자열의 왼쪽이나 오른쪽, 양쪽 모두에서 지정된 문자나 공백을 제거한 결과를 반환

다른점은 제거할 문자에 해당하는 trim_char로는 문자열이 아닌 오직 문자 하나만 올 수 있다.

- LEADING 구문을 사용해서 대상 문자열에서 왼쪽에 있는 trim_char를 제거할 수 있고, TRAILING 구문을 사용해서 오른쪽에서 지정한 문자를 제거, BOTH 구문을 사용해서 양쪽 끝 지정한 문자를 제거할 수 있다.

기본값은 BOTH가 적용된다. 

 

TRANSLATE(expr, from_string, to_string)

TRANSLATE 함수 : 문자열 하나를 일대일로 변환하는 작업을 수행

- from_string은 to_string보다 그 길이가 많아도 상관없지만 일대일로 대응되지 않는 문자는 NULL로 변환

- to_string은 생략 불가능, null값 가능

 

REPLACE(char, search_string, replace_string)

Replace함수 : char 문자열에서 search_string 값으로 들어온 문자를 replace_string값으로 대체하여 이 결과 반환

- replace_string은 생략할 수 있는데 이 값이 생략되거나 null 값이 올 경우에는 char 문자로 들어온 문자열 중에서 search_string 값을 제외한 (결국 search_string 값을 null로 대체한) 결과를 반환