Làm cách nào chúng ta có thể chuyển đổi một bảng bằng SQL Server (thay đổi các rows thành columns hoặc ngược lại)?
Làm cách nào chúng ta có thể chuyển đổi một bảng bằng SQL Server (thay đổi các rows thành columns hoặc ngược lại)?
Để chuyển đổi một bảng trong SQL Server, bạn có thể sử dụng các toán tử PIVOT để chuyển đổi từ hàng sang cột và UNPIVOT để chuyển đổi từ cột sang hàng.
Sử dụng PIVOT:
SELECT FirstName, Amount, PostalCode, LastName, AccountNumber
FROM
(
SELECT Id, Value, ColumnName
FROM YourTable
) AS SourceTable
PIVOT
(
MAX(Value)
FOR ColumnName IN (FirstName, Amount, PostalCode, LastName, AccountNumber)
) AS PivotTable;
Trong đoạn mã trên, YourTable là bảng chứa dữ liệu ban đầu. PIVOT được sử dụng để chuyển đổi giá trị từ hàng sang cột dựa trên cột ColumnName. Hàm tổng hợp MAX được sử dụng để xử lý các giá trị khi chuyển đổi, nhưng bạn có thể sử dụng các hàm tổng hợp khác nếu cần
Sử dụng UNPIVOT:
SELECT ID, EntityId, IndicatorName, IndicatorValue
FROM
(
SELECT ID, EntityID, Indicator1, Indicator2, Indicator3, ..., Indicator150
FROM YourTable
) AS SourceTable
UNPIVOT
(
IndicatorV...
middle