>데이터 베이스 >MySQL 튜토리얼 >Oracle SQL에서 구분 기호가 가장 많이 나타날 때 문자열을 어떻게 분할할 수 있습니까?

Oracle SQL에서 구분 기호가 가장 많이 나타날 때 문자열을 어떻게 분할할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-05 10:51:38805검색

How Can I Split a String in Oracle SQL at the Furthest Occurrence of a Delimiter?

Oracle SQL을 사용하여 구분 기호 위치별로 문자열 분할

다른 게시물과 유사하게, 요구 사항은 문자열을 가장 먼 문자로 분할하는 것입니다. 구분 기호. 여기서 중요한 차이점은 구분 기호가 항상 첫 번째 인스턴스가 아니라 가장 먼 인스턴스라는 것입니다.

이를 달성하려면 SUBSTR 및 INSTR 함수를 활용할 수 있습니다. Instr(str, '/', -1, 1)은 가장 먼 구분 기호의 위치를 ​​찾고, -1은 문자열의 끝부터 처음부터 검색을 시작함을 나타냅니다.

그런데 다음에서 오류가 발생했습니다. INSTR 함수에 start_position이 없기 때문에 제공된 예입니다. start_position = -1을 추가하면 INSTR 함수가 가장 먼 구분 기호를 찾아서 그에 따라 문자열을 분할합니다.

수정된 코드는 다음과 같습니다.

WITH DATA AS
  ( SELECT 'F/P/O' str FROM dual
  )
SELECT SUBSTR(str, 1, Instr(str, '/', -1, 1) -1) part1,
         SUBSTR(str, Instr(str, '/', -1, 1) +1) part2
FROM DATA

이러한 변경을 통해 코드가 정확하게 분할됩니다. 원하는 구분 기호 위치에 있는 문자열로, 해당 문자열에 대해 "F/P" 및 "O"가 올바르게 출력됩니다. "F/P/O".

위 내용은 Oracle SQL에서 구분 기호가 가장 많이 나타날 때 문자열을 어떻게 분할할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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