> 데이터 베이스 > MySQL 튜토리얼 > 효율적인 SQL 쿼리를 위해 구분된 VARCHAR 열을 분할하는 방법은 무엇입니까?

효율적인 SQL 쿼리를 위해 구분된 VARCHAR 열을 분할하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-17 17:55:09
원래의
708명이 탐색했습니다.

How to Split a Delimited VARCHAR Column for Efficient SQL Queries?

SQL에서 VARCHAR 열을 여러 값으로 분할

문제:

값을 검색할 때 IN 절을 사용하는 VARCHAR 열에서 Oracle은 구분된 목록을 다음으로 변환합니다. 하위 쿼리가 개별 값과 일치하지 않도록 작은따옴표로 묶은 문자열.

해결책 1:

IN 절의 구분된 목록 값을 동일한 구분 기호로 묶습니다. VARCHAR 열에 사용됩니다. 예를 들어 AD_Ref_List.Value IN ('CO','VO')를 사용하는 대신 AD_Ref_List.Value IN (',' || 'CO' || ',' || 'VO' || ',')를 사용합니다. .

해결책 2(대체 Where 절):

일반 사용 REGEXP_SUBSTR 함수를 사용하는 표현식 기반 기술을 사용하여 지정된 수준의 구분된 목록에서 개별 값을 추출합니다. 예를 들어 다음 쿼리는 재귀를 사용하여 구분된 목록을 분할합니다.

SELECT Value
FROM AD_Ref_List
WHERE AD_Reference_ID = 1000448
AND value IN (
  SELECT REGEXP_SUBSTR(XX_DocAction_Next, '[^,]+', 1, LEVEL)
  FROM xx_insert
  WHERE xx_insert_id = 1000283
  CONNECT BY LEVEL <= REGEXP_COUNT(XX_DocAction_Next, '[^,]+')
);
로그인 후 복사

위 내용은 효율적인 SQL 쿼리를 위해 구분된 VARCHAR 열을 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿