6.1 문자 함수

 

문자함수는 문자값을 조작하는 함수이다

 

- CHR 함수

SELECT 'AB' || CHR(10) || ' C' AS c1 FROM DUAL;

CHR(10) 표현식은 줄바꿈 문자를 의미한다.

 

 

- LOWER 함수

char를 소문자로 변경한다.

SELECT LOWER('abC') AS c1 FROM DUAL;

-> abc

 

- UPPER 함수

char를 대문자로 변경한다.

SELECT UPPER('abC') AS c1 FROM DUAL;

-> ABC

 

- INITCAP 함수

단어의 첫 글자는 대문자, 나머지는 소문자로 변경한다.

중간에 쉼표가 있으면 단어가 구분된다.

SELECT INITCAP ('abC de') AS c1, INITCAP ('abC,de') AS c2 FROM DUAL;

-> abc De     Abc,De

 

- LPAD 함수

좌측으로 길이를 늘리고, 늘어난 공간을 특정 값으로 채워넣는다.

SELECT LPAD( 'AB', 5, '12') AS c1 FROM DUAL;

-> 121AB 

5자리까지 좌측으로 길이를 늘리고, 12를 반복해서 채워넣은것.

 

 

- RPAD 함수

우측으로 길이를 늘리고, 늘어난 공간을 특정 값으로 채워넣는다.

SELECT RPAD ('AB', 5, '12') AS c1 FROM DUAL;

-> AB121

5자리까지 우측으로 길이를 늘리고, 12를 반복해서 채워넣은것.

 

 

- LTRIM 함수

좌측부터, 포함된 문자열을 제거한다. 포함되지 않는 문자를 만나면 제거가 중단된다.

SELECT LTRIM ('ABC', 'BA') AS c1, LTRIM('ABC', 'BC') AS c2 FROM DUAL;

-> C   ABC

 

- RTRIM 함수

우측부터, 포함된 문자열을 제거한다. 포함되지 않는 문자를 만나면 제거가 중단된다.

 

 

- TRIM 함수

좌측이나 우측이나 양측에서 특정 문자를 제거. 주로 공백 제거용으로 사용

 

SELECT TRIM ('A' FROM 'AAB ') AS c1 FROM DUAL;

-> B

 

- SUBSTR 함수

 

문자열을 잘라서 반환하는 함수

 

SELECT SUBSTR ('123456', 4, 2) AS c1 FROM DUAL;

-> 45

 

- REPLACE 함수

특정 문자열을 원하는 문자열로 교체

SELECT REPLACE ('ABCABC', 'AB', '1') AS c1 FROM DUAL;

-> 1C1C

 

 

- TRANSLATE 함수

대응하는 위치의 문자열로 변환함

SELECT TRANSLATE ('AAABBC', 'AB', '1 ') AS c1 FROM DUAL;

-> 111  C

 

A에 대응하는건 1, B에 대응하는건 공백으로 대체된 것이다.

 

 

- ASCII 함수

char 첫 문자의 아스키 값을 십진수로 반환한다.

SELECT ASCII ('BC') AS c1 FROM DUAL;

-> 66

B에 해당하는 66을 반환. C는 무시

 

 

- INSTR 함수

 

특정 시작위치로부터 특정 문자열의 시작 위치를 반환

SELECT INSTR ('ABABABAB', 'AB' 1, 2) AS c1 FROM DUAL;

-> 3

 

시작위치(1) 부터 2번째 AB가 시작되는 위치를 반환

 

 

- LENGTH 함수

char의 길이를 반환

 

SELECT LENGTH ('AB') AS c1 FROM DUAL;

-> 2

 

 

6.2 숫자 함수

 

- ABS 함수

n의 절대값을 반환

SELECT ABS(-10) AS c1 FROM DUAL;

-> 10

 

 

- SIGN 함수

n의 부호를 반환. 양수면 1, 음수면 -1, 0은 0을 반환

SELECT SIGN(10) AS c1 FROM DUAL;

-> 10

 

- ROUND함수

원하는 자릿수로 반올림. 양수면 소수부, 음수면 정수부를 반올림한다.

 

SELECT ROUND(15.59, 1) AS c1, ROUND(15.59, -1) AS c2 FROM DUAL;

-> 15.6   20

 

 

- TRUNC 함수

원하는 자리로 버린다. 양수면 소수부, 음수면 정수부를 버린다.

SELECT TRUNC (15.59, 1) AS c1, TRUNC (15.59, -1) AS c2 FROM DUAL;

-> 15.5    10

 

- CEIL 함수

n보다 크거나 같은 정수의 최소값을 반환

SELECT CEIL (15.5) AS c1, CEIL (16) AS c2 FROM DUAL;

-> 16 16

 

- FLOOR 함수

n보다 작거나 같은 정수의 최대값을 반환

 

 

- MOD 함수

나눈 나머지를 반환

 

SELECT MOD (11, 4) AS c1, MOD (11, -4) AS c2, MOD (-11, 4) AS c3 FROM DUAL;

-> 3 3 -3

 

둘 중 하나가 음수면 절대값으로 계산한 값에 첫번째 수의 부호를 적용한다.

 

 

- REMAINDER 함수

 

MOD와 비슷하나, MOD는 내부 계산에 FLOOR를 쓰고 REMAINDER는 ROUND를 씀

 

SELECT REMAINDER(11, 4) AS c1 FROM DUAL;

-> -1

12에서 -1을 했다고 생각하면 될듯 (부족한 만큼 마이너스)

 

 

- POWER 함수

거듭제곱 값을 반환

 

- BITAND 함수

AND 비트 연산값을 반환

 

SELECT BITANd (6, 3) AS c1 FROM DUAL;

-> 2

 

110 과 011 을 비트연산 하면 010 이고 이를 십진수로 변환하면 2이다.

 

 

'SQL > 불친절한 SQL 프로그래밍' 카테고리의 다른 글

6장 part.2 [단일 행 함수]  (0) 2022.09.22
5장 [SELECT 문]  (0) 2022.09.21

+ Recent posts