Rumah > pangkalan data > Oracle > teks badan

Bagaimana untuk menukar baris kepada lajur dalam Oracle

PHPz
Lepaskan: 2023-04-18 09:44:26
asal
22116 orang telah melayarinya

Dalam pangkalan data Oracle, penukaran baris ialah keperluan pemprosesan data biasa. Ia menukar berbilang nilai berturut-turut kepada berbilang nilai dalam lajur untuk persembahan dan analisis data yang lebih baik.

Sebagai contoh, katakan kita mempunyai jadual berikut:

ID Name Score1 Score2 Score3
1 John 80 70 90
2 Lily 90 85 95
3 Tom 60 75 80

Jika kita ingin menukar setiap gred pelajar kepada baris yang berasingan, kita boleh menggunakan baris ke lajur untuk mencapai hasil berikut :

ID Name Subject Score
1 John Score1 80
1 John Score2 70
1 John Score3 90
2 Lily Score1 90
2 Lily Score2 85
2 Lily Score3 95
3 Tom Score1 60
3 Tom Score2 75
3 Tom Score3 80

Dalam Oracle, terdapat beberapa cara untuk menukar baris kepada lajur, termasuk menggunakan UNPIVOT dan UNION ALL. Seterusnya, kami akan memperincikan langkah dan sintaks setiap kaedah.

Gunakan UNPIVOT untuk memindahkan baris ke lajur

UNPIVOT ialah kata kunci dalam Oracle SQL yang boleh memindahkan lajur ke dalam baris. Gunakan pertanyaan UNPIVOT untuk menukar berbilang lajur kepada berbilang baris. Untuk menggunakan UNPIVOT, anda perlu memastikan bahawa setiap baris dalam jadual mempunyai bilangan lajur yang sama dan jenis data yang sama.

Berikut ialah langkah untuk menggunakan UNPIVOT untuk menukar baris kepada lajur:

Langkah 1: Buat jadual sampel

Pertama, kita perlu mencipta jadual sampel untuk menyediakan data tersebut.

CREATE TABLE score (
   ID INT,
   Name VARCHAR2(20),
   Score1 INT,
   Score2 INT,
   Score3 INT
);

INSERT INTO score VALUES (1, 'John', 80, 70, 90);
INSERT INTO score VALUES (2, 'Lily', 90, 85, 95);
INSERT INTO score VALUES (3, 'Tom', 60, 75, 80);
COMMIT;
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Jalankan pertanyaan UNPIVOT

Kemudian, kita boleh menggunakan pertanyaan UNPIVOT berikut untuk mengubah data:

SELECT ID, Name, Subject, Score
FROM score
UNPIVOT (
   Score FOR Subject IN (Score1, Score2, Score3)
);
Salin selepas log masuk

Hasil berjalan adalah seperti berikut :

ID Name Subject Score
1 John Score1 80
1 John Score2 70
1 John Score3 90
2 Lily Score1 90
2 Lily Score2 85
2 Lily Score3 95
3 Tom Score1 60
3 Tom Score2 75
3 Tom Score3 80

Langkah 3: Kosongkan jadual

Akhir sekali, kita boleh mengosongkan data dengan memadamkan jadual:

DROP TABLE score;
Salin selepas log masuk
Salin selepas log masuk

Gunakan UNION ALL untuk menukar baris dan lajur

UNION ALL Ia juga merupakan kaedah yang digunakan dalam Oracle SQL untuk menukar baris kepada lajur. Lajur boleh ditukar kepada baris menggunakan pertanyaan UNION ALL. Berikut ialah langkah untuk menggunakan UNION ALL untuk menukar baris kepada lajur:

Langkah 1: Buat jadual sampel

Pertama, kita perlu mencipta jadual sampel untuk menyediakan data.

CREATE TABLE score (
   ID INT,
   Name VARCHAR2(20),
   Score1 INT,
   Score2 INT,
   Score3 INT
);

INSERT INTO score VALUES (1, 'John', 80, 70, 90);
INSERT INTO score VALUES (2, 'Lily', 90, 85, 95);
INSERT INTO score VALUES (3, 'Tom', 60, 75, 80);
COMMIT;
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Jalankan pertanyaan UNION ALL

Kemudian, kita boleh menggunakan pertanyaan UNION ALL berikut untuk mengubah data:

SELECT ID, Name, 'Score1' Subject, Score1 Score FROM score
UNION ALL
SELECT ID, Name, 'Score2' Subject, Score2 Score FROM score
UNION ALL
SELECT ID, Name, 'Score3' Subject, Score3 Score FROM score
ORDER BY ID, Subject;
Salin selepas log masuk

Hasil berjalan ialah seperti berikut:

ID Name Subject Score
1 John Score1 80
1 John Score2 70
1 John Score3 90
2 Lily Score1 90
2 Lily Score2 85
2 Lily Score3 95
3 Tom Score1 60
3 Tom Score2 75
3 Tom Score3 80

Langkah 3: Kosongkan jadual

Akhir sekali, kita boleh mengosongkan data dengan memadamkan jadual:

DROP TABLE score;
Salin selepas log masuk
Salin selepas log masuk

Ringkasan

Baris ke lajur ialah teknologi pemprosesan Data yang biasa membolehkan kami memaparkan dan menganalisis data dengan lebih baik. Dalam Oracle SQL, kita boleh menggunakan UNPIVOT dan UNION ALL untuk menukar baris kepada lajur. Dengan menguasai konsep ini dan sintaks yang berkaitan, kami boleh memproses dan menganalisis data dalam pangkalan data dengan mudah.

Atas ialah kandungan terperinci Bagaimana untuk menukar baris kepada lajur dalam Oracle. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!