동적 쿼리를 사용하는 SQL Server의 동적 피벗 데이터
이 도움말에서는 날짜, 카테고리 및 금액 열의 데이터를 날짜 및 카테고리별로 금액을 그룹화하는 보다 구조화된 형식으로 변환하는 방법을 설명합니다.
이를 위해 동적 피벗 쿼리를 사용할 수 있습니다. 피벗은 테이블의 행을 열로 회전할 수 있는 SQL Server의 기능입니다. 이 경우 피벗 포인트는 날짜 열이고 결과 열은 범주가 됩니다.
<code class="language-sql">DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX);</code>
동적 피벗 쿼리를 작성하려면 먼저 두 개의 변수를 정의합니다. @cols
는 카테고리를 저장하고 @query
는 최종 쿼리를 저장합니다.
<code class="language-sql">SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.category) FROM temp c FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'')</code>
다음으로 다양한 카테고리를 쉼표로 연결하고 큰따옴표로 묶어서 @cols
변수를 만듭니다.
<code class="language-sql">set @query = 'SELECT date, ' + @cols + ' from ( select date , amount , category from temp ) x pivot ( max(amount) for category in (' + @cols + ') ) p '</code>
마지막으로 쿼리 문자열을 @query
에 할당합니다. 쿼리는 날짜 열과 모든 범주를 열로 선택하여 시작됩니다. 그런 다음 PIVOT을 사용하여 날짜 열을 행 머리글로, 범주를 열 머리글로 사용하여 데이터를 회전합니다.
<code class="language-sql">execute(@query)</code>
@query
을 실행하면 필요에 따라 데이터를 피벗하여 원하는 결과가 반환됩니다.
<code>日期 ABC DEF GHI 2012-01-01 00:00:00.000 1000.00 NULL NULL 2012-02-01 00:00:00.000 NULL 500.00 800.00 2012-02-10 00:00:00.000 NULL 700.00 NULL 2012-03-01 00:00:00.000 1100.00 NULL NULL</code>
위 내용은 동적 쿼리를 사용하여 SQL Server에서 데이터를 동적으로 피벗하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!