에도 불구하고 문서화되지 않은 상태인 master..spt_values는 Microsoft SQL Server의 시스템 프로시저가 다양한 기능을 효과적으로 수행할 수 있게 해주는 귀중한 테이블입니다. 여기에는 데이터 유형, 역할 및 기타 메타데이터에 대한 조회 값을 포함하여 이러한 시스템 프로시저에서 사용되는 참조 테이블 및 프로젝션 데이터 모음이 포함되어 있습니다.
Type = 'P'는 master..spt_values 내의 Projection 테이블을 의미합니다. 이 표는 데이터를 통해 예측이나 순회를 수행하는 데 사용할 수 있는 0부터 2047까지의 연속된 숫자 시퀀스를 제공합니다.
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는 여러 가지 기능을 제공합니다. 장점:
위 내용은 SQL Server에서 효율적인 열 분할을 위해 master..spt_values를 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!