SQL Server: Tukar lajur kepada baris
Dalam SQL Server, anda mungkin perlu menukar jadual yang mengandungi berbilang lajur penunjuk kepada struktur baris untuk setiap penunjuk dan nilai yang sepadan dengannya. Ini boleh dicapai melalui beberapa teknik.
Fungsi UNPIVOT
Fungsi UNPIVOT ialah cara mudah untuk menukar lajur kepada baris. Ia menukar lajur yang ditentukan kepada baris, dengan nama lajur asal menjadi baris baharu yang dilabelkan "nama penunjuk". Nilai lajur asal menjadi baris berlabel "nilai penunjuk".
SELECT id, entityId, indicatorname, indicatorvalue FROM yourtable UNPIVOT ( indicatorvalue FOR indicatorname IN (Indicator1, Indicator2, Indicator3) ) unpiv;
Gunakan UNION ALL’s CROSS APPLY
Cara lain ialah menggabungkan CROSS APPLY dengan UNION ALL:
SELECT id, entityid, indicatorname, indicatorvalue FROM yourtable CROSS APPLY ( SELECT 'Indicator1', Indicator1 UNION ALL SELECT 'Indicator2', Indicator2 UNION ALL SELECT 'Indicator3', Indicator3 UNION ALL SELECT 'Indicator4', Indicator4 ) c (indicatorname, indicatorvalue);
SANGLANG GUNA menggunakan klausa NILAI
Jika versi SQL Server anda menyokongnya, anda juga boleh menggunakan klausa VALUES dengan CROSS APPLY:
SELECT id, entityid, indicatorname, indicatorvalue FROM yourtable CROSS APPLY ( VALUES ('Indicator1', Indicator1), ('Indicator2', Indicator2), ('Indicator3', Indicator3), ('Indicator4', Indicator4) ) c (indicatorname, indicatorvalue);
SQL Dinamik
Untuk jadual dengan banyak lajur penunjuk, menjana pernyataan SQL yang diperlukan secara manual boleh membosankan. SQL Dinamik boleh mengautomasikan proses ini:
DECLARE @colsUnpivot AS NVARCHAR(MAX), @query AS NVARCHAR(MAX) SELECT @colsUnpivot = STUFF((SELECT ',' + QUOTENAME(C.column_name) FROM INFORMATION_SCHEMA.COLUMNS AS C WHERE C.table_name = 'yourtable' AND C.column_name LIKE 'Indicator%' FOR XML PATH('')), 1, 1, '') SET @query = 'SELECT id, entityId, indicatorname, indicatorvalue FROM yourtable UNPIVOT ( indicatorvalue FOR indicatorname IN (' + @colsunpivot +') ) u' EXEC sp_executesql @query;
Teknologi ini menyediakan kaedah yang fleksibel untuk menukar lajur kepada baris dalam SQL Server dan boleh menyesuaikan diri dengan struktur jadual dan keperluan data yang berbeza.
Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Lajur kepada Baris dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!