Gabungkan dua jadual dengan bilangan lajur yang berbeza
P粉879517403
2023-08-24 18:54:05
<p>Saya mempunyai dua jadual (Jadual A dan Jadual B). </p>
<p>Kedua-dua jadual mempunyai bilangan lajur yang berbeza - dengan mengandaikan jadual A mempunyai lebih banyak lajur. </p>
<p>Bagaimanakah saya boleh menggabungkan kedua-dua jadual ini dan mendapatkan nilai nol pada lajur yang tidak ada pada jadual B? </p>
Saya datang ke sini dan ikut jawapan di atas. Tetapi ketidakpadanan susunan jenis data mengakibatkan ralat. Penerangan di bawah daripada jawapan lain akan membantu.
Adakah keputusan di atas dalam susunan yang sama dengan lajur dalam jadual anda? Kerana Oracle sangat ketat pada susunan lajur. Contoh berikut akan menghasilkan ralat:
ORA-01790: ungkapan mesti mempunyai jenis data yang sama dengan ungkapan yang sepadan
Seperti yang anda lihat, punca ralat terletak pada ketidakpadanan susunan lajur yang tersirat dengan menggunakan * sebagai penentu senarai lajur. Ralat jenis ini boleh dielakkan dengan mudah dengan memasukkan senarai lajur secara eksplisit:
pilih col_a, col_b, col_c daripada test1_1790 kesatuan semua pilih col_a, col_b, col_c daripada test2_1790; Situasi yang lebih biasa untuk ralat ini ialah apabila anda secara tidak sengaja menukar (atau mengalihkan) dua atau lebih lajur dalam senarai PILIH:
Atau, jika perkara di atas tidak menyelesaikan masalah anda, bagaimana pula dengan mencipta alias dalam lajur , seperti ini: (Pertanyaan berbeza daripada anda, tetapi perkara di sini ialah cara menambah alias dalam lajur.)
Untuk jadual dengan kurang lajur, anda boleh menambah lajur kosong tambahan, contohnya: