sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo usar TODOS los operadores lógicos en SQL Server - SQL Server / Tutorial TSQL Parte 126

TODO El operador lógico devuelve VERDADERO si todo un conjunto de comparaciones es VERDADERO. ALL compara un valor escalar con un conjunto de valores de una sola columna.

Comprendamos ALL con ejemplos.

Escenario:

Piense en un escenario donde tenemos dos tablas dbo.Customer y dbo.Customer1. Ambas tablas tienen la columna Edad. Si necesita obtener todos los registros de la tabla dbo.Customer donde Age es mayor que el valor máximo de la columna Age en la tabla dbo.Customer1. ¿Cuál sería su consulta?

Solución:

Podemos usar la subconsulta y la función máxima para escribir nuestra consulta para el requisito anterior. Primero creemos las tablas.

--Create Customer Table
Create table dbo.Customer
 (Id int,
  FName VARCHAR(50),
  LName VARCHAR(50),
  CountryShortName CHAR(2),
  Age tinyint)
GO
--Insert Rows in dbo.Customer Table
insert into dbo.Customer
Values (
1,'Raza','M','PK',20),
(2,'Rita','John','US',12),
(3,'Sukhi','Singh',Null,25),
(4,'James','Smith','CA',60),
(5,'Robert','Ladson','US',54),
(6,'Alice','John','US',87)

--Create dbo.Customer1 table
Create table dbo.Customer1
 (Id int,
  FName VARCHAR(50),
  LName VARCHAR(50),
  CountryShortName CHAR(2),
  Age tinyint)
GO
--Insert rows in dbo.Customer1 Table
insert into dbo.Customer1
Values
(7,'Raza','M','US',33),
(8,'Dita','M','US',15),
(9,'Adita','M','US',29)
 
1) Obtenga todos los registros de la tabla dbo.Customer donde la Edad es mayor que el valor máximo de Edad de la tabla dbo.Customer1 usando Subquery y la función Max.


2) usando ALL con SubQuery
Para el requisito anterior podemos utilice el operador lógico ALL. En ese caso no tenemos que usar la función Max. TODO va a comparar nuestro valor de consulta externo con el conjunto de valores de la subconsulta. Podemos usar>Todo,>TODO significa mayor que cada valor devuelto por la subconsulta, en otras palabras mayor que el valor máximo.

Select * From dbo.Customer
where Age> All ( Select age from dbo.Customer1)
Cómo usar TODOS los operadores lógicos en SQL Server - Tutorial de SQL Server / TSQL
 

Con ALL puede usar diferentes operadores de comparación como =, <> , !=,> ,>=, !> , <, <=, !<


Video de demostración:Cómo usar TODOS los operadores lógicos en SQL / TSQL