1) LENGTH
문자열 길이 결정
예) SELECT ename, LENGTH( ename )
FROM BONUS ;
–> ename의 문자열의 길이를 Return합니다.
2) SUBSTR
문자열 추출
사용법 : SUBSTR (string, starting point, number of character)
예) SELECT ename, SUBSTR( ename, 1, 6)
FROM BONUS ;
–> ename이 marcellino라면 marcel을 Return합니다.
SUBSTR 내에 함수를 사용할 수 있습니다.
예) SELECT SUBSTR( ename, LENGTH( ename ) – 6, 7)
FROM BONUS ;
–> ename이 marcellino라면 “length( ename ) – 6″는 “4”이므로, cellino를 Return합니다.
3) REPLACE
문자열 교체
사용법 : REPLACE (string, existing string, replacement string)
예) UPDATE std_db
SET remark = REPLACE( remark, ‘Inch (키)’, ‘cm (키)’ ) ;
–> Inch라는 문자열을 모두 cm로 바꾸게 됩니다.
문자열 삭제
사용법 : REPLACE (string, removement string)
예) UPDATE std_db
SET remark = REPLACE( remark, ‘marcel’ ) ;
–> std_db TABLE의 remark 열에서 marcel이라는 학생의 이름이 삭제됩니다.
4) RTRIM, LTRIM
공백 제거
RTRIM : 문자열 내의 후미 공백( Trailing Blank ) 제거
LTRIM : 문자열 내의 선행 공백( Leading Blank ) 제거
사용법 : RTRIM (column name), LTRIM (column name)
예) UPDATE std_db
SET ename = RTRIM( ename )
WHERE ename like ‘%’ ;
문자열 제거
사용법 : RTRIM (column name, 트리밍될 문자열), LTRIM (column name, 트리밍될 문자열)
예) UPDATE std_db
SET remark = LTRIM( remark, ‘abc’ ) ;
–> a, b, c가 문자열의 왼쪽에 있다면 a, b, c를 제거합니다.
RTRIM을 이용한다면 후미 문자를 제거할 수 있습니다.
위의 후미 공백 제거 SQL 예에서 WHERE절에 like %를 사용했는데, 이것이 열의 후미에 공백이 있는지 없는지 검사하는 방법중의 하나입니다.
5) LPAD, RPAD
원하는 문자열을 선행이나 후미에 Padding
LPAD : 문자열을 선행에 Padding
RPAD : 문자열을 후미에 Padding
사용법 : LPAD (string, n, pad_string), RPAD (string, n, pad_string)
예) SELECT LPAD( ename, 10 ) FROM std_db ;
–> 공백을 왼쪽에 Padding합니다.
SELECT LPAD( remark, LENGTH( remark ) + 20, ‘I would like to say ‘ ) FROM std_db ;
–> 열의 왼쪽에 “I would like to say “라는 문자열을 추가합니다.
6) INITCAP, LOWER, UPPER
INITCAP : 각 단어의 첫 번째 문자를 대문자로 변환
LOWER : 모든 문자를 소문자로 변환
UPPER : 모든 문자를 대문자로 변환
사용법 : INITCAP (column name), LOWER (column name), UPPER (column name)
예) SELECT UPPER( ename ) FROM std_db ;
–> 모두 대문자로 디스플레이가 되겠죠? INITCAP, UPPER도 동일합니다.
7) DECODE
암호화된 CODE를 서술할 때 사용한다… 고 해야하나요?
사용법 : DECODE (expression, value1, returned value1 … valueN, returned valueN, [default returned value] )
예) SELECT ename, eng_score, kor_score,
DECODE ( average,
‘A’, ’90 ~ 100′,
‘B’, ’80 ~ 90′,
‘C’, ’70 ~ 80′,
‘D’, ’60 ~ 70′,
‘F’, ‘0 ~ 60’,
‘Unknown Code’ )
FROMstd_db ;
–> 만약 average가 “A”이면 “90 ~ 100″이 디스플레이되고, “B”이면 “80 ~ 90″… 이런 식으로 디스플레이하게 됩니다. 만약 “P” 등과 같이 정의되지 않은 문자가 오면 “Unknown Code”를 Return하게 되죠.
8) ASCII
한 개의 문자( 첫 번째 문자)를 ASCII 값으로 나타냅니다.
사용법 : ASCII (char or varchar2 type column name )
예) SELECT ASCII( ename ), ename
FROM std_db ;
–> ename의 첫 자를 ASCII값으로 변경합니다.만약 ename이 “Marcel”이면 “M”에 대한 ASCII 값인 “77”을 Return합니다.
9) INSTR
특정 문자열을 포함한 COLUMN에서의 문자열 위치 찾기
사용법 : INSTR (string1, string2, [starting position, [occurrence number]] )
starting position : string1 내에서 검색을 시작할 위치
occurrence number: string1 내에서 찾는 string2의 어커런스 수
예) SELECT remark, INSTR( remark, ‘marcel’ )
FROM std_db ;
–> std_db TABLE의 remark COLUMN에서 “marcel”의 첫 번째 어커런스를 Return한다. “marcel”을 포함하지 않은 COLUMN에 대해서는 “0”을 Return하게 된다.
이 부분은 그냥 이런 게 있구나! 하고 참조한 후 나중에 사용하게 되면 다시 찾아보세요. 그러면 이해가 갈겁니다.