Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menukar jadual menegak Oracle kepada jadual mendatar

Bagaimana untuk menukar jadual menegak Oracle kepada jadual mendatar

WBOY
WBOYasal
2022-05-24 17:29:027637semak imbas

Dalam Oracle, anda boleh menggunakan fungsi unpivot() untuk menukar jadual menegak kepada jadual mendatar Fungsi ini digunakan untuk menukar medan lajur dalam satu baris kepada berbilang baris data mengikut unik. nilai baris. Sintaks ialah " pilih medan daripada set data unpivot(nilai lajur untuk nama lajur tersuai dalam(nama lajur))".

Bagaimana untuk menukar jadual menegak Oracle kepada jadual mendatar

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Oracle 11g, komputer Dell G3.

Cara menukar jadual menegak Oracle kepada jadual mendatar

Penukaran lajur Oracle adalah untuk menukar medan lajur dalam satu baris kepada berbilang baris data mengikut nilai unik baris.

Data asas jadual prestasi pelajar ialah prestasi subjek pelajar sepadan dengan rekod. Kemudian kami menukar baris menjadi lajur dan mengubahnya menjadi rekod yang sepadan dengan markah pelajar dalam setiap lajur (matematik, Inggeris, Cina). Jadi artikel ini adalah untuk menukar jadual skor pelajar yang telah ditukar sebelum ini (skor_salinan jadual sandaran) kepada lajur dan baris sekali lagi dan menukarnya kepada data asal. Data kes adalah seperti berikut:

Bagaimana untuk menukar jadual menegak Oracle kepada jadual mendatar

Bagaimana untuk menukar jadual menegak Oracle kepada jadual mendatar

Jadi bagaimana kita melaksanakan penukaran lajur? Dua kaedah biasa diperkenalkan di bawah:

1 Gunakan kesatuan semua untuk penyambungan, yang boleh menukar lajur yang sepadan dengan sempurna kepada rekod baris Kod khusus adalah seperti berikut:

select t.stuname, '英语' as coursename ,t.英语 as score  from SCORE_COPY t
union all
select t.stuname, '数学' as coursename ,t.数学 as score  from SCORE_COPY t
union all
select t.stuname, '语文' as coursename ,t.语文 as score  from SCORE_COPY t

Hasilnya adalah seperti berikut:

Bagaimana untuk menukar jadual menegak Oracle kepada jadual mendatar

2. Masalah ini juga boleh diselesaikan dengan sempurna dengan menggunakan fungsi unpivot lajur-ke-baris Oracle sendiri Struktur sintaks khusus adalah seperti berikut:

select 字段 from 数据集
unpivot(自定义列名/*列的值*/ for 自定义列名 in(列名))

Kod pelaksanaan adalah seperti berikut :

select stuname, coursename ,score from
score_copy  t
unpivot
(score for coursename in (英语,数学,语文))

Keputusan adalah seperti berikut:

Bagaimana untuk menukar jadual menegak Oracle kepada jadual mendatar

Tutorial yang disyorkan: "Tutorial Video Oracle"

Atas ialah kandungan terperinci Bagaimana untuk menukar jadual menegak Oracle kepada jadual mendatar. 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