PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Perbaiki “ERROR:  setiap kueri UNION harus memiliki jumlah kolom yang sama” di PostgreSQL

Saat menggunakan UNION operator di PostgreSQL, jika Anda menemukan kesalahan yang berbunyi “ERROR:setiap kueri UNION harus memiliki jumlah kolom yang sama “, itu karena ada ketidakcocokan dalam jumlah kolom yang dikembalikan oleh kueri di kedua sisi UNION operator.

Kesalahan ini terjadi ketika jumlah kolom yang dikembalikan oleh setiap SELECT pernyataannya berbeda.

Cara untuk memperbaikinya adalah dengan memastikan bahwa keduanya SELECT pernyataan mengembalikan jumlah kolom yang sama.

Contoh Kesalahan

Berikut contoh kode yang menghasilkan kesalahan:

SELECT TeacherName FROM Teachers
UNION
SELECT StudentId, StudentName FROM Students;

Hasil:

ERROR:  each UNION query must have the same number of columns
LINE 3: SELECT StudentId, StudentName FROM Students;

Di sini, SELECT first pertama pernyataan mengembalikan satu kolom (TeacherName ), tetapi SELECT second kedua pernyataan mengembalikan dua kolom (StudentId dan StudentName ).

Solusi

Solusinya adalah memastikan keduanya SELECT pernyataan mengembalikan jumlah kolom yang sama

Dengan menggunakan contoh di atas, kita dapat menghapus kolom tambahan dari SELECT . kedua kita pernyataan:

SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;

Atau kita dapat menambahkan kolom lain ke SELECT pertama pernyataan:

SELECT TeacherId, TeacherName FROM Teachers
UNION
SELECT StudentId, StudentName FROM Students;

Penting untuk dicatat bahwa Anda bisa mendapatkan hasil yang berbeda tergantung pada opsi yang Anda pilih. Ini karena UNION mengembalikan baris yang berbeda secara default. Saat kita menambahkan kolom lain, ada kemungkinan baris yang sebelumnya duplikat sekarang menjadi baris yang unik, tergantung pada nilai di kolom tambahan.

Kami juga dapat menggunakan UNION ALL , yang mengembalikan nilai duplikat:

SELECT TeacherId, TeacherName FROM Teachers
UNION ALL
SELECT StudentId, StudentName FROM Students;

Ini juga dapat mengembalikan hasil yang berbeda ke contoh lainnya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tampilan Terwujud PostgreSQL

  2. Bagaimana Tand() Bekerja di PostgreSQL

  3. Menghubungkan PostgreSQL 9.2.1 dengan Hibernate

  4. BeanCreationException:Kesalahan membuat kacang dengan nama 'flywayInitializer'

  5. Pernyataan INSERT opsional dalam rantai transaksi menggunakan NodeJS dan Postgres