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 |