Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menukar Baris ke Lajur dengan Cekap dalam Pelayan SQL?

Bagaimanakah Saya Boleh Menukar Baris ke Lajur dengan Cekap dalam Pelayan SQL?

DDD
DDDasal
2025-01-25 14:42:14663semak imbas

How Can I Efficiently Convert Rows to Columns in SQL Server?

kaedah penukaran putaran sederhana SQL Server

Dalam SQL Server, terdapat banyak cara untuk menukar baris ke dalam lajur.

Gunakan fungsi pivot

Fungsi pivot boleh dipindahkan dari baris ke lajur. Berikut adalah contoh pertanyaan menggunakan pivot:

Pertanyaan ini akan mengeluarkan hasil berikut:

<code class="language-sql">select Firstname, Amount, PostalCode, LastName, AccountNumber
from
(
  select value, columnname
  from yourtable
) d
pivot
(
  max(value)
  for columnname in (Firstname, Amount, PostalCode, LastName, AccountNumber)
) piv;</code>

Sila ambil perhatian bahawa kecekapan fungsi pivot mungkin lebih rendah untuk set data yang besar.

FirstName Amount PostalCode LastName AccountNumber
John 2.4 ZH1E4A Fork 857685
Gunakan fungsi polimer dan ekspresi kes

Jika pivot tidak berkenaan, anda boleh menggunakan fungsi polimer dan ekspresi kes, seperti yang ditunjukkan di bawah:

Pertanyaan ini akan menghasilkan hasil yang sama seperti pertanyaan pivot.

Menggunakan pelbagai sambungan Join
<code class="language-sql">select
  max(case when columnname = 'FirstName' then value end) Firstname,
  max(case when columnname = 'Amount' then value end) Amount,
  max(case when columnname = 'PostalCode' then value end) PostalCode,
  max(case when columnname = 'LastName' then value end) LastName,
  max(case when columnname = 'AccountNumber' then value end) AccountNumber
from yourtable</code>

Kaedah lain ialah menggunakan pelbagai sambungan gabungan, seperti yang ditunjukkan di bawah:

Sila ambil perhatian bahawa untuk set data yang besar, kecekapan menggunakan pelbagai sambungan gabungan mungkin tidak tinggi. Kaedah untuk dipilih bergantung pada keperluan data dan prestasi khusus anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Baris ke Lajur dengan Cekap dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn