Oracle에서 쉼표로 구분된 값을 열로 효율적으로 분할하는 방법은 무엇입니까?
Oracle: 쉼표로 구분된 값을 열로 효율적으로 구문 분석
데이터를 처리하려면 쉼표로 구분된 값(CSV)을 개별 열로 분할해야 하는 경우가 많습니다. Oracle은 정규식을 사용하여 효율적인 솔루션을 제공하며, 특히 많은 수의 값(이 경우 최대 255개)을 처리할 때 유용합니다. 이렇게 하면 각 열에 대한 SUBSTR()
함수의 번거로운 반복을 피할 수 있습니다.
과제: 최대 255개의 쉼표로 구분된 값을 개별 열로 추출
해결책: 활용 REGEXP_SUBSTR()
핵심은 REGEXP_SUBSTR()
함수와 다음 정규식입니다.
REGEXP_SUBSTR(CSV_VALUES, '(.*?)(,|$)', 1, COLUMN_NUMBER, NULL, 1)
정규식 이해:
(.*?)
: 탐욕스럽지 않게(.
) 모든 문자(*
)를 0번 이상(?
) 일치합니다. 이렇게 하면 다음 쉼표까지만 캡처됩니다.(,|$)
: 쉼표(,
) 또는 문자열 끝($
)과 일치합니다. 이는 값을 구분합니다.1
: 첫 번째 캡처된 그룹(쉼표를 제외한 값 자체)이 반환되도록 지정합니다.COLUMN_NUMBER
: 추출할 값(열)을 나타냅니다(첫 번째는 1, 두 번째는 2 등).NULL
,1
: 이 매개변수는 대소문자를 구분하지 않고 첫 번째 항목을 선택하는 데 사용됩니다.
예시:
다음 CSV 문자열을 고려하세요.
<code>CSV_VALUES: 1.25, 3.87, 2, 5, 4, 3.3</code>
첫 번째 값(1.25)을 얻으려면:
REGEXP_SUBSTR(CSV_VALUES, '(.*?)(,|$)', 1, 1, NULL, 1)
두 번째 값(3.87)의 경우:
REGEXP_SUBSTR(CSV_VALUES, '(.*?)(,|$)', 1, 2, NULL, 1)
COLUMN_NUMBER
을 반복하면 모든 값이 개별 열로 추출됩니다. 이 방법은 문자열 내 쉼표로 구분된 값의 개수에 관계없이 효율적으로 확장됩니다.
위 내용은 Oracle에서 쉼표로 구분된 값을 열로 효율적으로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)?
