[오라클|Oracle] String 원하는 만큼 자르기 – SUBSTR

 

오늘은 String 또는 String으로 반환되는 Column 값을 원하는 길이로 자르는 방법에 대해서 알아보도록 하겠습니다.

 


String 타입의 길이를 자르는 것은 SUBSTR 함수입니다.

 


※ MS-SQL 에서는 SUBSTRING 함수를 쓰기는 합니다만, 아래의 구문이 전부 먹히는 지는 잘 모르겠습니다.

 

 

 

 

 

 

 

SELECT '나는 대한민국 사람입니다' IAM FROM DUAL;

 

 

 

 

 

 

 

 

 IAM

 1

 나는 대한민국 사람입니다

 

 

 

 

 이 쿼리를 기본으로 설명 드리겠습니다.

 

 

 

 

 일반적인 SUBSTR 구문입니다.

 

 

 

 

 

 

 

 

SELECT SUBSTR('나는 대한민국 사람입니다', 1, 7) IAM FROM DUAL;

 

 

 

 

 

 

 

 IAM

 1

 나는 대한민국

 

 

 

 

 

 

 

 

SELECT SUBSTR('나는 대한민국 사람입니다', 4, 4) IAM FROM DUAL;

 

 

 

 

 

 

 

 

 IAM

 1

 대한민국

 

 

 

 

 

 SUBSTR(대상, 시작 위치, 자르고 싶은 길이)로 사용해 주시면 됩니다.

 시작점만 정해주고 해당 String의 끝까지 자르는 구문입니다.

 

 

 

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

 

 

SELECT SUBSTR('나는 대한민국 사람입니다', 4) IAM FROM DUAL;

 

 

 

 

 

 

 IAM

 1

 대한민국 사람입니다

 

 

SUBSTR(대상, 시작 위치) 해주시면 됩니다.

 

 

 

 

 뒤에서 몇 번 째 부터 시작할 지를 정해주는 구문입니다.

 

 

  

 

 

 

 

 

SELECT SUBSTR('나는 대한민국 사람입니다', -5) IAM FROM DUAL;

 

 

 

 

 

 

 

 IAM

 1

 사람입니다

 

 

 SUBSTR(대상, 시작 위치) 의 방법은 동일합니다만, - 를 넣으면, 앞에서부터 몇 번 째가 아니라, 뒤에서부터 몇 번 째 위치에서 시작한다는 의미를 가집니다.

 

 

 뒤에서 몇 번 째 부터 시작해서 몇 개를 자를 지 정해주는 구문입니다.

 

  

 

 

 

 

SELECT SUBSTR('나는 대한민국 사람입니다', -5, 2) IAM FROM DUAL;

 

 

 

 

 

 

 IAM

 1

 사람

 

 

 SUBSTR(대상, 시작 위치, 자르고 싶은 길이)를 쓰는 것은 동일합니다만, 위와 마찬가지로 – 를 사용하여, 시작 위치를 뒤에서부터 계산한다는 차이가 있습니다.

 

 

 

 

 

 

팁으로…
일반적으로 Column 값을 호출에서 SUBSTR을 쓰실 텐데요. 가끔 Space가 껴서 들어오는 경우가 있습니다.
미리 TRIM 함수를 사용하여, 앞 뒤 Space를 제거하신 후, SUBSTR 함수를 사용하시는 것이 오류 발생을 최소화 할 수 있는 방법입니다.


SELECT SUBSTR(TRIM(' 나는 대한민국 사람입니다 '), 1) IAM FROM DUAL;

 

 

 

 IAM

 1

 나는 대한민국 사람입니다

 

 

 

 

 

 

 [출처] https://nown2210.tistory.com/94

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED