Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

ORDER BY item harus muncul dalam daftar pilih jika pernyataan berisi operator UNION, INTERSECT atau KECUALI (SQL Server)

Jika Anda menjalankan kueri di SQL Server, dan Anda mendapatkan kesalahan berikut…

Msg 104, Level 16, State 1, Line 8
ORDER BY items must appear in the select list if the statement contains a UNION, INTERSECT or EXCEPT operator.

…Anda harus memeriksa pernyataan SQL Anda – Anda mungkin telah menghilangkan kolom dari SELECT daftar.

Seperti yang tersirat dalam pesan kesalahan, Anda mungkin hanya akan melihat kesalahan ini jika Anda menjalankan kueri yang berisi UNION , INTERSECT atau EXCEPT operator.

Cukup tambahkan kolom ke SELECT . Anda list harus memperbaiki masalah.

Contoh

Berikut ini contoh menghasilkan kesalahan.

SELECT 
    CatName
FROM Cats
UNION ALL
SELECT 
    DogName 
FROM Dogs
ORDER BY CatId;

Hasil:

Msg 104, Level 16, State 1, Line 8
ORDER BY items must appear in the select list if the statement contains a UNION, INTERSECT or EXCEPT operator.

Masalahnya di sini, adalah saya mencoba memesan dengan CatId kolom, tapi sebenarnya saya tidak memilih kolom itu di SELECT daftar.

Cara termudah untuk memperbaikinya adalah dengan menambahkan kolom itu ke SELECT . saya daftar.

SELECT 
    CatId AS PetID,
    CatName AS PetName
FROM Cats
UNION ALL
SELECT 
    DogId AS PetID,
    DogName AS PetName
FROM Dogs
ORDER BY PetId;

Hasil:

+---------+-----------+
| PetID   | PetName   |
|---------+-----------|
| 1       | Brush     |
| 1       | Yelp      |
| 2       | Scarcat   |
| 2       | Woofer    |
| 3       | Flutter   |
+---------+-----------+

Sebenarnya, dalam kasus saya, saya memilih kolom dengan nama yang berbeda (CatId vs DogId , CatName vs DogName ), jadi saya memutuskan untuk menggunakan alias untuk kolom tersebut (PetId dan PetName ). Dalam hal ini, saya dapat ORDER BY nama alias (PetId ).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server Melarikan Diri dari Garis Bawah

  2. Cegah menyimpan perubahan yang mengharuskan tabel dibuat ulang efek negatif

  3. Apakah ada SELECT ... INTO OUTFILE yang setara di SQL Server Management Studio?

  4. Hitung jam kerja antara dua tanggal

  5. Script untuk mematikan semua koneksi ke database (Lebih dari RESTRICTED_USER ROLLBACK)