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
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào