SQL Server 2000에서 데이터 피벗
데이터 피벗이란 데이터 세트를 수직, 열 중심 형식에서 가로, 행 중심 형식입니다. 즉, 열이 행이 되고 그 반대로 열이 행이 되도록 테이블의 데이터를 회전할 수 있습니다.
다음 두 테이블을 고려하세요.
제품
ProductId | Name |
---|---|
1 | Product A |
2 | Product B |
제품 메타
ProductId | MetaKey | MetaValue |
---|---|---|
1 | A | Value A for Product A |
1 | B | Value B for Product A |
1 | C | Value C for Product A |
2 | A | Value A for Product B |
2 | B | Value B for Product B |
2 | C | Value C for Product B |
제품 이름을 행으로, 메타 키를 열로 표시하고 각 셀에 해당 메타 값이 있는 결과 집합을 얻으려고 합니다.
ProductName | Meta A | Meta B | Meta C |
---|---|---|---|
Product A | Value A for Product A | Value B for Product A | Value C for Product A |
Product B | Value A for Product B | Value B for Product B | Value C for Product B |
이 피벗을 달성하려면 SELECT 내에서 조건부 집계와 CASE 문을 조합하여 사용할 수 있습니다. 명령문:
SELECT P.ProductId, P.Name, MIN(CASE WHEN PM.MetaKey = 'A' THEN PM.MetaValue END) AS MetaA, MIN(CASE WHEN PM.MetaKey = 'B' THEN PM.MetaValue END) AS MetaB, MIN(CASE WHEN PM.MetaKey = 'C' THEN PM.MetaValue END) AS MetaC FROM Products AS P INNER JOIN ProductMeta AS PM ON PM.ProductId = P.ProductId GROUP BY P.ProductId, P.Name;
이 쿼리는 제품 ID 및 이름별로 행을 올바르게 그룹화하고 각 키에 대해 원하는 메타 값을 검색합니다.
위 내용은 조건부 집계를 사용하여 SQL Server 2000에서 데이터를 피벗하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!