Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So verwenden Sie ANY / SOME Logical Operator in SQL Server - SQL Server / TSQL-Tutorial Teil 127

ANY Der logische Operator gibt TRUE zurück, wenn einer aus einer Reihe von Vergleichen TRUE ist. ANY vergleicht einen Skalarwert mit einem Satz von Werten aus einer einzelnen Spalte.

Hinweis:SOME und ANY sind äquivalent. In unseren Beispielen unten verwenden wir ANY.

Szenario :

Nehmen wir an, wir haben zwei Tabellen dbo.Customer und dbo.Customer1. Beide Tabellen haben die Spalte Alter. Wenn Sie alle Datensätze aus der Tabelle dbo.Customer abrufen müssen, bei denen das Alter mindestens größer als ein Wert aus der Spalte Age der Tabelle dbo.Customer1 ist.

Lösung:

Wir können die Unterabfrage und die MIN-Funktion verwenden, um unsere Abfrage für die obige Anforderung zu schreiben. Lassen Sie uns zuerst die Tabellen erstellen.

--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) Rufen Sie alle Datensätze aus der Tabelle dbo.Customer ab, bei denen das Alter größer als der Wert für das Mindestalter der Tabelle dbo.Kunde1 ist, indem Sie die Funktion Subquery und Min verwenden.
 
Select * From dbo.Customer
where Age> ( Select MIN(age) from dbo.Customer1)
 
 
 
 2) Verwenden Sie ANY, um die erforderlichen Ergebnisse zu erhalten.
Wir können ANY anstelle der Min-Funktion mit Unterabfrage verwenden. Da wir alle Zeilen aus dbo.Customer erhalten möchten, in denen Alter größer als ein beliebiger Wert der Altersspalte in dbo.Customer ist, verwenden wir>Any.
>ANY bedeutet größer als mindestens ein Wert, d. h. größer als das Minimum.

Select * From dbo.Customer
where Age>ANY ( Select age from dbo.Customer1)
 
 
 Wir haben dieselben Datensätze erhalten, die von unserer ersten Abfrage zurückgegeben wurden.
Wenn Sie =ANY verwenden, das gleich IN ist. Mit ANY können Sie verschiedene Vergleichsoperatoren wie =, <> , !=,> ,>=, !> , <, <=, !<



Video verwenden Demo :Verwendung von JEDEN / EINIGEN logischen Operatoren in SQL Server