sql >> Databáze >  >> RDS >> Sqlserver

Poddotaz pomocí Existuje 1 nebo Existuje *

Ne, SQL Server je chytrý a ví, že je používán pro EXISTS a nevrací ŽÁDNÁ DATA do systému.

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

Výběrový seznam poddotazu zavedený pomocí EXISTS se téměř vždy skládá z hvězdičky (*). Není důvod uvádět názvy sloupců, protože pouze testujete, zda existují řádky, které splňují podmínky uvedené v poddotazu.

Chcete-li se sami zkontrolovat, zkuste spustit následující:

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

Pokud by skutečně něco dělal se seznamem SELECT, vyhodilo by to div s nulovou chybou. Není.

EDIT:Všimněte si, že o tom ve skutečnosti mluví standard SQL.

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

3) Případ:
a) Pokud je je ekvivalentní to je libovolný .



  1. Oracle:jak získat procento z celkového počtu dotazem?

  2. Membership.ValidateUser vždy vrátí hodnotu false po upgradu na VS 2010 / .NET 4.0

  3. MariaDB GROUP_CONCAT()

  4. Parametrizované dotazy C# pro Oracle - závažná a nebezpečná chyba!