Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment utiliser l'opérateur logique ANY / SOME dans SQL Server - Tutoriel SQL Server / TSQL Partie 127

ANY L'opérateur logique renvoie TRUE si l'une des comparaisons d'un ensemble est TRUE. ANY compare une valeur scalaire avec un ensemble de valeurs sur une seule colonne.

Remarque :SOME et ANY sont équivalents. Nous allons utiliser ANY dans nos exemples ci-dessous.

Scénario :

Disons que nous avons deux tables dbo.Customer et dbo.Customer1. Les deux tables ont la colonne Age. Si vous avez besoin d'obtenir tous les enregistrements de la table dbo.Customer où Age est au moins supérieur à une valeur de la colonne Age de la table dbo.Customer1.

Solution :

Nous pouvons utiliser la sous-requête et la fonction MIN pour écrire notre requête pour l'exigence ci-dessus. Commençons par créer les tables.

--Create Customer TableCreate table dbo.Customer (Id int, FName VARCHAR(50), LName VARCHAR(50), CountryShortName CHAR(2) , Age tinyint)GO--Insert Rows in dbo.Customer Tableinsert into dbo.CustomerValues ​​(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 tableCreate table dbo.Customer1 (Id int, FName VARCHAR(50), LName VARCHAR(50), CountryShortName CHAR(2), Age tinyint)GO--Insérer des lignes dans dbo.Customer1 Tableinsert dans dbo.Customer1Values(7,'Raza','M','US',33),(8,'Dita','M ','US',15),(9,'Adita','M','US',29)
 
1) Obtenez tous les enregistrements de la table dbo.Customer où l'âge est supérieur à la valeur d'âge min de la table dbo.Customer1 à l'aide de la fonction Subquery et Min.
 
Select * From dbo.Customerwhere Age> ( Sélectionnez MIN(age) from dbo.Customer1)
 
 
 
 2) Utilisez ANY pour obtenir les résultats requis.
Nous pouvons utiliser ANY au lieu d'utiliser la fonction Min avec une sous-requête. Comme nous voulons obtenir toutes les lignes de dbo.Customer où Age est supérieur à toute valeur de la colonne Age dans dbo.Customer, nous utiliserons>Any.
>ANY signifie supérieur à au moins une valeur, c'est-à-dire supérieure que le minimum.

Select * From dbo.Customerwhere Age>ANY (Select age from dbo.Customer1)
 
 
 Nous avons obtenu les mêmes enregistrements que ceux renvoyés par notre première requête.
Si vous utilisez =ANY qui est égal à IN. Avec ANY, vous pouvez utiliser différents opérateurs de comparaison tels que =, <> , !=,> ,>=, !> , <, <=, !<



Vidéo Démo :Comment utiliser l'opérateur logique ANY / SOME dans SQL Server