본문 바로가기
데이터베이스/Postgresql

[PostgreSQL] 문자열 함수 (자르기, 붙히기, 치환 등)

by cbwstar 2021. 7. 16.
728x90
반응형

문자열 함수

  • 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 도 동일하게 사용합니다.



출처: https://kwomy.tistory.com/60?category=851266 [Kwomy's DB World]

728x90
반응형

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading