반응형
문자열 함수
- btrim : 문자열의 시작과 끝 양쪽에 지정된 문자들을 제거
- char_length : 문자열의 길이를 반환
- character_length : 지정된 문자열의 길이를 반환
- || : 2개의 문자열을 합하여 반환
- initcap : 문자열 중 첫번째 문자는 대문자로 변환하고 나머지는 소문자로 변환
- length : 문자열의 길이를 반환
- lower : 지정된 문자열을 모두 소문자로 변환
- lpad : 지정된 문자열을 원하는 길이로 맞추는데, 이때 부족한 문자를 왼쪽에 채움
- ltrim : 문자열의 왼쪽에서 지정된 모든 문자를 제거
- position : 문자열에서 지정된 문자열이 존재하는 인덱스값을 반환
- repeat : 문자열을 원하는 만큼 반복해서 반환
- replace : 기존의 문자열을 구성하는 부분 문자열을 원하는 문자열로 변환
- rpad : 지정된 문자열을 원하는 길이로 맞추는데, 이때 부족한 문자를 오른쪽에 채움
- rtrim : 문자열의 오른쪽에서 지정된 모든 문자를 제거
- strpos : 기존의 문자열에서 찾고자 하는 부분 문자열의 위치를 반환
- substring : 주어진 문자열에서 원하는 부분 문자열을 추출
- translate : 기존의 문자열 중 치환하고자 하는 문자열을 지정해 변환
- trim : 문자열의 시작과 끝 양쪽에 지정된 문자들을 제거
- upper : 문자열을 모두 대문자로 변환
(예제 실행을 위한 간단한 테이블 생성)
CREATE TABLE event_info (
event_no varchar(10) NOT NULL,
event_occur_dt timestamp NOT NULL,
event_cn varchar(3000) NULL,
event_level varchar(20) NULL,
event_end_dt timestamp NULL,
CONSTRAINT event_info_pk PRIMARY KEY (event_no)
)
(테스트를 위한 임시 데이터 입력)
INSERT INTO daegu.event_info
VALUES ('264','2020-10-16 17:54:19.159','','high',NULL)
,('2881','2020-10-21 17:01:36.971','wwww','high',NULL)
,('281','2020-10-19 11:42:06.302','w','high',NULL)
,('282','2020-10-19 11:45:13.949','wwww','high',NULL)
,('2962','2020-10-22 11:53:45.581','wwww','high',NULL)
,('301','2020-10-19 11:55:40.318','wwwwwwww','high',NULL)
,('302','2020-10-19 11:56:20.580','efefee','middle',NULL)
,('2','2020-10-16 13:29:07.000','random Event','middle',NULL)
,('141','2020-10-16 13:29:46.000','random Event','middle',NULL)
,('142','2020-10-16 13:29:48.000','random Event','low',NULL);
** 자주 쓰이는 문자열 함수 예제 **
1. 문자열 합치기
(1) ||
SELECT 'ABC'||event_no FROM event_info;
(2) concat
select concat('ABC', event_no) from event_info;
2. 문자열 자르기
(1) 구분자로 자르기
- 문법 : split_part( 문자열, 구분자, 순서 )
select split_part(event_occur_dt::varchar, '-', 2) from event_info;
(2) substring
- 문법 : substring ( 문자열, 시작점, 시작문자열갯수 )
select substring(event_occur_dt::varchar, 12, 8) from event_info;
추가설명 : event_occur_dt 컬럼의 타입이 timestamp이므로 문자열 타입으로 바꿔준 후 문자의 12번째 자리부터 8개의 숫자를 출력하여 년월일 시분초 로 되어있는 컬럼에서 시간만 출력할 수 있습니다.
3. 문자열 채우기
- 문법 : LPAD( 문자열, 만들어질 자릿수, 채울 문자 )
select 'level'||LPAD(event_level_code, 7, '=') from event_info;
* RPAD 도 동일하게 사용합니다.
반응형
'[DB] POSTGRESQL' 카테고리의 다른 글
[PostgreSQL] trigger code source 확인하기 (0) | 2021.01.12 |
---|---|
[PostgreSQL] 사용하지 않는 인덱스 조회 및 성능 개선 (0) | 2021.01.12 |
[PostgreSQL] SQL 파일 실행 (0) | 2020.06.26 |
[PostgreSQL] postgresql job for postgresql-11.service failed because the control process exited with error code (0) | 2020.06.26 |
[PostgreSQL] 테이블스페이스 및 오브젝트 사용량 조회 (0) | 2020.04.22 |