>데이터 베이스 >MySQL 튜토리얼 >Oracle SQL에서 밑줄 앞에 부분 문자열을 추출하는 방법은 무엇입니까?

Oracle SQL에서 밑줄 앞에 부분 문자열을 추출하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-27 13:27:08747검색

How to Extract a Substring Before an Underscore in Oracle SQL?

Oracle SQL에서 특정 문자까지 하위 문자열을 추출하는 방법

문자열 내의 문자 위치를 식별하는 것은 데이터 조작에서 일반적인 문제가 될 수 있습니다. 이 문제를 해결하기 위해 질문에서는 테이블 열에서 특정 문자(이 경우 밑줄('_'))까지의 하위 문자열을 추출해야 하는 시나리오를 탐색합니다.

SUBSTRING의 위치 기반 제한

SUBSTRING 함수를 사용하는 초기 접근 방식은 위치 기반 선택에 의존하기 때문에 충분하지 않은 것으로 나타났습니다. 주어진 예에서 밑줄의 위치가 다르기 때문에 이 방법은 원하는 하위 문자열을 일관되게 검색하지 못합니다.

RTRIM 함수: 유망하지만 불완전한 솔루션

RTRIM 함수에 대한 고려 사항은 다음과 같습니다. 오른쪽에서 특정 문자 세트를 제거하면 처음에는 유망해 보입니다. 그러나 RTRIM 함수를 다른 방법과 함께 사용하지 않는 한 밑줄까지 이어지는 문자를 분리하는 데는 부족합니다.

SUBSTR, INSTR 및 NVL의 조합

해결책은 다음과 같습니다. SUBSTR 함수를 문자의 위치를 ​​식별하는 INSTR과 null 값을 처리하는 NVL과 결합합니다. 다음 코드는 이 접근 방식을 보여줍니다.

SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output
FROM DUAL

구현 이해

  • SUBSTR 함수는 지정된 시작 위치(0)와 길이(INSTR('ABC_blah)를 기반으로 하위 문자열을 추출합니다. ', '_')-1).
  • INSTR 함수는 밑줄 문자가 처음 나타나는 것을 찾아 문자 인덱싱을 고려하여 1을 뺍니다.
  • NVL 함수는 발견된 경우(null이 아님) 하위 문자열을 반환합니다. 그렇지 않으면 원래 문자열을 반환합니다.

위 내용은 Oracle SQL에서 밑줄 앞에 부분 문자열을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.