> 데이터 베이스 > MySQL 튜토리얼 > SQL Server에서 효율적인 열 분할을 위해 master..spt_values를 어떻게 사용할 수 있습니까?

SQL Server에서 효율적인 열 분할을 위해 master..spt_values를 어떻게 사용할 수 있습니까?

DDD
풀어 주다: 2025-01-01 04:12:09
원래의
692명이 탐색했습니다.

How Can master..spt_values Be Used for Efficient Column Splitting in SQL Server?

열 분할에 master..spt_values를 활용하는 이유와 방법

master..spt_values의 목적

에도 불구하고 문서화되지 않은 상태인 master..spt_values는 Microsoft SQL Server의 시스템 프로시저가 다양한 기능을 효과적으로 수행할 수 있게 해주는 귀중한 테이블입니다. 여기에는 데이터 유형, 역할 및 기타 메타데이터에 대한 조회 값을 포함하여 이러한 시스템 프로시저에서 사용되는 참조 테이블 및 프로젝션 데이터 모음이 포함되어 있습니다.

유형 이해 = 'P'

Type = 'P'는 master..spt_values ​​내의 Projection 테이블을 의미합니다. 이 표는 데이터를 통해 예측이나 순회를 수행하는 데 사용할 수 있는 0부터 2047까지의 연속된 숫자 시퀀스를 제공합니다.

열 분할을 위한 spt_values ​​활용

master..spt_values에 저장된 원시 데이터는 사용자 쿼리에서 직접 사용하기 위한 것이 아닙니다. 그러나 프로젝션 기능은 단일 열 내에서 데이터를 분할하는 데 특히 유용합니다.

한 열에 '1,2,3'과 같이 쉼표로 구분된 값 목록이 포함된 테이블을 상상해 보세요. 이 열을 여러 행으로 변환하려면 다음과 같이 spt_values를 활용할 수 있습니다.

SELECT
    RIGHT(LEFT(T.col4,Number-1),
    CHARINDEX(',',REVERSE(LEFT(','+T.col4,Number-1))))
FROM
    master..spt_values,
    table1 T
WHERE
    Type = 'P' AND Number BETWEEN 1 AND LEN(T.col4)+1 AND
    (SUBSTRING(T.col4,Number,1) = ','
    -- OR SUBSTRING(T.col4,Number,1)  = '') --this does not work correctly anyway
로그인 후 복사

이 시나리오에서 쿼리는 spt_values ​​테이블(유형 = 'P')을 반복하고 숫자 시퀀스를 사용하여 분할 작업. 쉼표로 구분된 목록 내의 각 값을 효과적으로 분리하여 결과 집합에 고유한 행을 만듭니다.

열 분할에 spt_values ​​사용의 이점

마스터를 사용합니다. 열 분할을 위한 .spt_values는 여러 가지 기능을 제공합니다. 장점:

  • 효율성: 기존 테이블과 일련의 숫자를 활용하여 쿼리는 임시 테이블을 생성하고 채우는 오버헤드를 방지합니다.
  • 유연성: 프로젝션 테이블은 다양한 숫자를 제공하므로 서로 다른 열에 대한 다양한 분할 작업이 가능합니다. lengths.
  • 호환성: master..spt_values는 기본 제공 시스템 테이블이므로 SQL Server 설치 시 보편적으로 사용할 수 있어 호환성과 안정성이 보장됩니다.

위 내용은 SQL Server에서 효율적인 열 분할을 위해 master..spt_values를 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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