


Bagaimanakah Saya Boleh Menukar Lajur kepada Baris dalam Pelayan SQL?
Jan 21, 2025 pm 07:27 PMPenukaran lajur ke baris dalam Pelayan SQL
Menukar lajur pangkalan data kepada baris ialah teknik penting dalam analisis dan penyusunan semula data. Terdapat beberapa cara untuk mencapai penukaran ini dalam SQL Server, masing-masing mempunyai kelebihan dan pertimbangan tersendiri.
Kaedah 1: Fungsi UNPIVOT
Fungsi UNPIVOT menyokong penukaran lajur ke baris secara asli. Sintaks UNPIVOT adalah seperti berikut:
UNPIVOT (indicatorvalue FOR indicatorname IN (Indicator1, Indicator2, Indicator3, ...)) AS unpiv
Contoh:
SELECT id, entityId, indicatorname, indicatorvalue FROM yourtable UNPIVOT ( indicatorvalue FOR indicatorname IN (Indicator1, Indicator2, Indicator3) ) unpiv;
Kaedah 2: Gunakan UNION ALL’s CROSS APPLY
CROSS APPLY menggunakan UNION ALL ialah cara lain untuk menukar lajur kepada baris. Ia menggabungkan baris secara berulang berdasarkan lajur yang disediakan:
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);
Kaedah 3: Gunakan CROSS APPLY of NILAI
Kaedah ini menggunakan klausa VALUES dalam CROSS APPLY untuk menentukan nama dan nilai lajur:
SELECT id, entityid, indicatorname, indicatorvalue FROM yourtable CROSS APPLY ( VALUES ('Indicator1', Indicator1), ('Indicator2', Indicator2), ('Indicator3', Indicator3), ('Indicator4', Indicator4) ) c (indicatorname, indicatorvalue);
Kaedah 4: SQL Dinamik
Untuk senario di mana anda perlu melepaskan sejumlah besar lajur, Dynamic SQL 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;
Anda boleh melakukan penukaran lajur ke baris dengan cekap dalam SQL Server dengan memilih kaedah yang paling sesuai untuk senario khusus anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Lajur kepada Baris dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)?

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?
