sábado, 30 de marzo de 2013

Comparison Operators Modified by ANY, SOME, or ALL

Comparison Operators Modified by ANY, SOME, or ALL


El operador IN nos permite saber si un valor se encuentra en un conjunto de valores. Normalmente lo usamos en el WHERE. 

Por ejemplo 

  SELECT  [EmployeeID]
      ,[LastName]
      ,[FirstName]
      ,[MiddleInitial]
      ,[SSN]
  FROM [Employee]
  WHERE LastName IN ('Stein','Chen')

Nos retorna 
EmployeeID  LastName                       FirstName                     MiddleInitial SSN
----------- ------------------------------ ----------------------------- ------------- -----------
1           Stein                          Nidprxmvtyjnat                              123-07-9951
4           Chen                           Mju                                         750-07-9831
14          Stein                          Qfgakkjblwfbkb                              763-07-9431
17          Chen                           Jdjoemmumy                                  733-07-9311
27          Stein                          Ysscitlqms                                  590-07-8911
30          Chen                           Eyeqkrvwoewil                               327-07-8791

Los otro operadores de conjuntos que provee SQL son ALLSOME ANY

ANY retorna verdadero si la comparación se cumple para alguno del conjunto. Es lo mismo que IN.

   SELECT  [EmployeeID]
      ,[LastName]
      ,[FirstName]
      ,[MiddleInitial]
      ,[SSN]
  FROM [Employee]
  WHERE LastName = ANY (
SELECT 'Stein'
UNION
SELECT 'Chen')

ALL retorna verdadero si la condición se cumple para todo el conjunto

En el siguiente ejemplo ALL retornará los menores a 4, ya que los mismos son menores a 4 y a 8

   SELECT  [EmployeeID]
      ,[LastName]
      ,[FirstName]
      ,[MiddleInitial]
      ,[SSN]
  FROM [Employee]
  WHERE EmployeeID <= ALL 
SELECT 8
UNION
SELECT 4
) 


EmployeeID  LastName                       FirstName                     MiddleInitial SSN
----------- ------------------------------ ----------------------------- ------------- -----------
1           Stein                          Nidprxmvtyjnat                              123-07-9951
2           Eflin                          Ysgphbplbhoksy                              327-07-9911
3           Quint                          Ysoawvtycuwv                                593-07-9871
4           Chen                           Mju                                         750-07-9831

(4 row(s) affected)




No hay comentarios:

Publicar un comentario