Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Nyahpaut Data dan Mengekalkan Nama Lajur dalam SQL?

Bagaimanakah Saya Boleh Nyahpaut Data dan Mengekalkan Nama Lajur dalam SQL?

Linda Hamilton
Lepaskan: 2025-01-21 04:33:08
asal
240 orang telah melayarinya

How Can I Unpivot Data and Retain Column Names in SQL?

Gunakan operasi "terbalik" untuk membina semula data dan mengekalkan nama lajur

Operasi "terbalik" ialah alat penting untuk membina semula data jadual. Ia boleh menukar data daripada format berorientasikan lajur kepada format berorientasikan baris. Senario biasa ialah mengekstrak data dan nama lajur daripada jadual asal.

Pertimbangkan jadual berikut yang dipanggil StudentMarks, yang menjejak prestasi pelajar dalam mata pelajaran yang berbeza:

姓名 数学 科学 英语
Tilak 90 40 60
Raj 30 20 10

Output yang diingini ialah jadual yang dibina semula dengan tiga lajur: nama, subjek dan skor:

姓名 科目 分数
Tilak 数学 90
Tilak 科学 40
Tilak 英语 60

Untuk mencapainya, kita boleh menggunakan operasi "terbalikkan" seperti yang ditunjukkan di bawah:

<code class="language-sql">select u.name, u.subject, u.marks
from student s
unpivot
(
  marks
  for subject in (Maths, Science, English)
) u;</code>
Salin selepas log masuk

Pertanyaan ini berjaya membalikkan data dalam jadual StudentMarks sambil mengekalkan maklumat nama dan akaun. Klausa "FOR" menentukan nama lajur dari mana data akan diekstrak.

Seperti yang anda nyatakan, pertanyaan asal anda berjaya membalikkan nama dan nilai pecahan, tetapi tiada lajur akaun. Pertanyaan yang diubah suai menyelesaikan masalah ini dengan memasukkan lajur akaun dalam senarai pilihan akhir.

Penyelesaian ini menyediakan cara yang fleksibel untuk membina semula data jadual, membolehkan pengekstrakan nilai data dan nama lajur yang sepadan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Nyahpaut Data dan Mengekalkan Nama Lajur dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan