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

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

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

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
EXCEPT
SELECT StudentId, StudentName FROM Students;

Hasil:

ERROR:  each EXCEPT 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
EXCEPT
SELECT StudentName FROM Students;

Hasil:

 teachername 
-------------
 Cathy
 Ben

Opsi lainnya adalah menambahkan kolom yang relevan ke SELECT pertama pernyataan:

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

Hasil:

 teacherid | teachername 
-----------+-------------
         3 | Cathy
         4 | Cathy
         1 | Warren
         5 | Bill
         2 | Ben

Seperti yang ditunjukkan oleh contoh ini, baris yang berbeda dapat ditampilkan tergantung pada opsi yang Anda pilih.

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

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

Hasil:

 teacherid | teachername 
-----------+-------------
         3 | Cathy
         4 | Cathy
         1 | Warren
         5 | Bill
         2 | Ben

Ini juga dapat mengembalikan hasil yang sama atau berbeda, bergantung pada datanya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Melihat Versi Postgres Yang Sedang Berjalan

  2. ORDER BY Alias ​​​​tidak berfungsi

  3. Saya ingin memulihkan database dengan skema yang berbeda

  4. Bagaimana cara mengambil komentar dari database PostgreSQL?

  5. pemilik database postgresql tidak dapat mengakses database - Tidak ada hubungan yang ditemukan.