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

Subquery menggunakan Exists 1 atau Exists *

Tidak, SQL Server pintar dan tahu itu sedang digunakan untuk ADA, dan mengembalikan NO DATA ke sistem.

Kutipan Microsoft:http://technet.microsoft.com/en-us/library/ms189259.aspx?ppud=4

Daftar pilihan subkueri yang diperkenalkan oleh EXISTS hampir selalu terdiri dari tanda bintang (*). Tidak ada alasan untuk mencantumkan nama kolom karena Anda hanya menguji apakah baris yang memenuhi kondisi yang ditentukan dalam subkueri ada.

Untuk memeriksa diri sendiri, coba jalankan yang berikut ini:

SELECT whatever
  FROM yourtable
 WHERE EXISTS( SELECT 1/0
                 FROM someothertable 
                WHERE a_valid_clause )

Jika itu benar-benar melakukan sesuatu dengan daftar SELECT, itu akan melempar div dengan kesalahan nol. Tidak.

EDIT:Perhatikan, SQL Standard sebenarnya membicarakan hal ini.

ANSI SQL 1992 Standard, hal 191 http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt

3) Kasus:
a) Jika <select list> "*" hanya terkandung dalam <subquery> yang langsung terkandung dalam <exists predicate> , lalu <select list> setara dengan <value expression> itu adalah <literal> yang sewenang-wenang .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan parameter output prosedur tersimpan di C#

  2. Bagaimana cara saya terhubung ke database SQL Server 2008 menggunakan JDBC?

  3. Cache Objek Sementara SQL Server

  4. Hasilkan kelas dari tabel database

  5. Ekstrak Nomor Minggu dari Tanggal di SQL Server (T-SQL)