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>
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!