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

Cómo usar ANY / SOME Operador Lógico en SQL Server - Tutorial de SQL Server / TSQL Parte 127

CUALQUIER operador lógico devuelve VERDADERO si cualquiera de un conjunto de comparaciones es VERDADERO. ANY compara un valor escalar con un conjunto de valores de una sola columna.

Nota:ALGUNOS y ANY son equivalentes. Vamos a utilizar CUALQUIERA en nuestros ejemplos a continuación.

Escenario:

Digamos que 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 al menos mayor que un valor de la columna Age de la tabla dbo.Customer1.

Solución:

Podemos usar la subconsulta y la función MIN 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',10),
(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ínimo de edad de la tabla dbo.Customer1 usando la función Subconsulta y Min.
 
Select * From dbo.Customer
where Age> ( Select MIN(age) from dbo.Customer1)
 
 
 
 2) Use ANY para obtener los resultados requeridos.
Podemos usar ANY en lugar de usar la función Min con la subconsulta. Como queremos obtener todas las filas de dbo.Customer donde Age es mayor que cualquier valor de la columna Age en dbo.Customer, usaremos>Any.
>ANY significa mayor que al menos un valor, es decir, mayor que el mínimo.

Select * From dbo.Customer
where Age>ANY ( Select age from dbo.Customer1)
 
 
 Obtuvimos los mismos registros que devolvió nuestra primera consulta.
Si usa =ANY que es igual a IN. Con CUALQUIERA puede usar diferentes operadores de comparación como =, <> , !=,> ,>=, !> , <, <=, !<



Video Demostración:Cómo usar ANY / SOME Operador Lógico en SQL Server