Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mencipta Pangsi Dinamik dalam Oracle SQL dengan Nilai Dijana Masa Jalan?
Jadual Pangsi Dinamik Oracle SQL: Petua untuk Menjana Nilai pada Masa Jalan
Dilema biasa apabila menggunakan jadual pangsi dinamik dalam Oracle SQL ialah keperluan untuk mengemas kini ungkapan pangsi secara manual setiap kali nilai baharu ditambahkan pada sumber data. Proses manual ini memakan masa dan mudah ralat.
Untuk menyelesaikan masalah ini, anda boleh menggunakan pendekatan dinamik yang menjana ungkapan pangsi secara automatik berdasarkan data yang tersedia. Kaedah khusus adalah seperti berikut:
Pertama, buat pembolehubah rentetan sementara untuk memegang ungkapan perspektif dinamik. Menggunakan arahan COLUMN, anda boleh menentukan lajur sementara baharu bernama temp_in_statement
untuk menyimpan ungkapan pangsi yang terhasil.
Seterusnya, gunakan fungsi COLUMN NEW_VALUE bersama-sama dengan fungsi LISTAGG untuk membina ungkapan pangsi dinamik dalam lajur temp_in_statement
. Ungkapan ini akan terdiri daripada nilai yang berbeza daripada sumber data, dipisahkan dengan koma, serta alias yang sesuai.
Setelah anda mempunyai ungkapan pangsi dinamik dalam lajur temp_in_statement
, anda boleh merujuknya sebagai parameter dalam pertanyaan PIVOT anda. Contohnya:
<code class="language-sql">SELECT * FROM ( SELECT myNumber, myLetter, myValue FROM myTable ) PIVOT (Sum(myValue) AS val FOR myLetter IN (&str_in_statement));</code>
Dalam pertanyaan ini, pemegang tempat &str_in_statement
akan digantikan dengan ungkapan pangsi dinamik yang disimpan dalam lajur temp_in_statement
. Ini membolehkan anda melakukan pertanyaan pangsi tanpa mengemas kini ungkapan pangsi secara manual.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Pangsi Dinamik dalam Oracle SQL dengan Nilai Dijana Masa Jalan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!