단일행 함수
- 여러 건의 데이터를 한 번에 하나씩 처리하는 함수
- 문자 함수 / 숫자 함수 / 날짜 함수 / 변환 함수 / 일반 함수
함수명 | 의미 | 사용 예 (함수 이름을 *로 치환하겠음) |
INITCAP | 입력 값의 첫 글자만 대문자로 변환 | *('abcd') -> Abcd |
LOWER | 입력 값을 전부 소문자로 변환 | *('ABCD') -> abcd |
UPPER | 입력 값을 전부 대문자로 반환 | *('abcd') -> ABCD |
LENGTH | 입력된 문자열의 길이 값을 출력 | *('한글') -> 2 |
LENGTHB | 입력된 문자열의 길이의 바이트 값을 출력 | *('한글') -> 4 |
CONCAT | 두 문자열을 결합하여 출력. ||와 동일한 기능 | *('A', 'B') -> AB |
SUBSTR | 주어진 문자에서 특정 문자만 추출 | *('ABC',1,2) -> AB |
SUBSTRB | 주어진 문자에서 특정 바이트만 추출 | *('한글',1,2) -> 한 |
INSTR | 주어진 문자에서 특정 문자의 위치 추출 | *('A*B#','#') -> 4 |
INSTRB | 주어진 문자에서 특정 문자의 위치 바이트 값 추출 | *('한글로','로') -> 5 |
LPAD | 주어진 문자열에서 왼쪽으로 특정 문자를 채움 | *('love',6,'*') -> **love |
RPAD | 주어진 문자열에서 오른쪽으로 특정문자를 채움 | *('love',6,'*') -> love** |
LTRIM | 주어진 문자열에서 왼쪽의 특정 문자를 삭제 | *('*love','*') -> love |
RTRIM | 주어진 문자열에서 오른쪽의 특정 문자를 삭제 | *('love*','*') -> love |
REPLACE | 주어진 문자열에서 A를 B로 치환 | *('AB', 'A', 'E') -> EB |
이 중 SUBSTR을 실무에서 자주 사용하는 편이라고 한다.
시작 인덱스를 양수로 주면 왼쪽 -> 오른쪽으로 찾아서 출력해주고 음수로 주면 오른쪽 -> 왼쪽 순서로 시작 위치를 찾은 뒤 왼쪽 -> 오른쪽 순서로 문자열을 출력해준다.
예를 들어,
SUBSTR('abcdefg', 3, 2) -> cd
SUBSTR('abcdefg', -3, 2) -> ef
이런 식으로 작동한다.
주민번호에서 생일만 추출한다든지, 생일 몇일 전 알림을 보내기 위해 날짜를 추출한다든지 할 때 쓰인다.
2. 숫자 함수
이름 | 의미 | 사용 예 |
ROUND | 주어진 숫자를 반올림한 후 출력 | *(12.345, 2) -> 12.35 |
TRUNC | 주어진 숫자를 버림한 후 출력 | *(12.345, 2) -> 12.34 |
MOD | 주어진 숫자를 나눈 후 나머지 값을 출력 | *(12, 10) -> 2 |
CEIL | 주어진 숫자와 가장 근접한 큰 정수 출력 (올림) | *(12.345) -> 13 |
FLOOR | 주어진 숫자와 가장 근접한 작은 정수 출력 (내림) | *(12.345) -> 12 |
POWER | 주어진 숫자를 거듭제곱 해서 출력 | *(3, 2) -> 3^2 = 9 |
3. 날짜 함수
https://walkingfox.tistory.com/90
현재 보고 있는 책은 오라클을 기준으로 쓰여진 책이라 내가 실무에서 쓰는 postgresql과는 맞지 않는 부분이 있어서 링크로 대체 하겠음.
4. 형 변환
https://dullyshin.github.io/2019/08/30/PostgreSQl-cast/
:: 문법을 통해 으로 쉽고 간단하게 표현할 수 있다.