Karteikarten
Revista
Karten in diesem Stapel (5)
- 1Subconsultas con IN El resultado de una subconsulta especificada con IN (o con NOT IN) es una lista de cero o más valores. Una vez que la consulta devuelve los resultados, la consulta externa hace uso de ellos. La siguiente consulta busca los nombres de todos los productos de ruedas que Adventure Works Cycles fabrica.USE AdventureWorks2016;
GO
SELECT Name
FROM Production.Product
WHERE ProductSubcategoryID IN
(SELECT ProductSubcategoryID
FROM Production.ProductSubcategory
WHERE Name = 'Wheels');
GO - 2Subconsultas con NOT IN Las subconsultas que empiezan por la palabra clave NOT IN, devuelven también una lista de cero o más valores. En la siguiente consulta se buscan los nombres de los productos que no son bicicletas acabadas.USE AdventureWorks2016;
GO
SELECT Name
FROM Production.Product
WHERE ProductSubcategoryID NOT IN
(SELECT ProductSubcategoryID
FROM Production.ProductSubcategory
WHERE Name = 'Mountain Bikes'
OR Name = 'Road Bikes'
OR Name = 'Touring Bikes');
GO - 3Operadores de comparación modificados por ANY, SOME o ALL Los operadores de comparación que presentan una subconsulta se pueden modificar mediante las palabras clave ALL o ANY. SOME es un equivalente del estándar ISO de ANY.q
- 4Subconsultas con EXISTS Cuando una subconsulta se especifica con la palabra clave EXISTS, funciona como una prueba de existencia. La cláusula WHERE de la consulta externa comprueba si existen las filas devueltas por la subconsulta. En realidad, la subconsulta no produce ningún dato, devuelve el valor TRUE o FALSE.USE AdventureWorks2016;
GO
SELECT Name
FROM Production.Product
WHERE EXISTS
(SELECT *
FROM Production.ProductSubcategory
WHERE ProductSubcategoryID =
Production.Product.ProductSubcategoryID
AND Name = 'Wheels');
GO - 5Subconsultas con NOT EXISTS NOT EXISTSS funciona igual que EXISTS, con la diferencia de que la cláusula WHERE en la que se utiliza se cumple si la subconsulta no devuelve ninguna filaUSE AdventureWorks2016;
GO
SELECT Name
FROM Production.Product
WHERE NOT EXISTS
(SELECT *
FROM Production.ProductSubcategory
WHERE ProductSubcategoryID =
Production.Product.ProductSubcategoryID
AND Name = 'Wheels');
GO