Master..spt_values는 Microsoft SQL Server의 시스템 테이블로, 시스템 저장 프로시저에서 사용되는 다양한 조회 및 프로젝션 테이블이 포함되어 있습니다. 사전 정의된 숫자 시퀀스, 비트마스크 및 기타 일반적으로 필요한 값을 제공하여 효율적인 데이터 조작이 가능합니다.
조회 테이블을 사용하면 잠금 유형을 숫자에서 이름으로 변환하는 등 숫자 값을 해당 문자열 표현으로 확장할 수 있습니다. . 반면에 프로젝션 테이블은 값 범위를 반복하는 방법을 제공하므로 열을 여러 행으로 분할하는 데 유용합니다.
master..spt_values에 "P"를 입력하면 프로젝션 테이블을 나타냅니다. 0부터 2047까지의 일련의 연속 숫자가 포함되어 있습니다. 이 테이블을 사용하면 효율적인 프로젝션이 가능합니다. 계산 또는 집계와 같은 다양한 작업을 통해 값 집합을 생성합니다.
master..spt_values(유형 CSV 열을 분할하는 "P")는 성능과 효율성에 있습니다. 미리 계산된 숫자 시퀀스를 활용하면 SQL Server에서는 시퀀스가 동적으로 생성된 경우 필요한 임시 테이블을 만들고 삽입하는 작업을 피할 수 있습니다. 이는 열 분할 작업을 수행하는 쿼리의 실행 속도를 크게 향상시킬 수 있습니다.
문제의 코드는 master..spt_values를 사용하여 CSV 열을 여러 행으로 분할하는 방법을 보여줍니다.
SELECT T.col1, 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
이 코드는 master..spt_values의 "P" 유형 테이블을 활용하여 다음과 같은 일련의 숫자를 생성합니다. CSV 열(col4)의 각 문자를 соответствует합니다. 그런 다음 이 숫자를 사용하여 쉼표 구분 기호를 기준으로 열을 행으로 분할합니다.
위 내용은 master..spt_values가 SQL Server에서 쉼표로 구분된 값을 어떻게 효율적으로 분할할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!