Nota:SOME e ANY sono equivalenti. Useremo QUALSIASI nei nostri esempi seguenti.
Scenario:
Diciamo che abbiamo due tabelle dbo.Customer e dbo.Customer1. Entrambe le tabelle hanno la colonna Età. Se è necessario ottenere tutti i record dalla tabella dbo.Customer in cui Age è almeno maggiore di un valore dalla colonna Age dalla tabella dbo.Customer1.Soluzione:
Possiamo usare la subquery e la funzione MIN per scrivere la nostra query per il requisito di cui sopra. Creiamo prima le tabelle.--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) Ottieni tutti i record dalla tabella dbo.Customer in cui l'età è maggiore del valore minimo dell'età della tabella dbo.Customer1 utilizzando la funzione Subquery e Min.
Select * From dbo.Customer where Age> ( Select MIN(age) from dbo.Customer1)
2) Usa QUALSIASI per ottenere i risultati richiesti.
Possiamo usare QUALSIASI invece di usare la funzione Min con sottoquery. Poiché vogliamo ottenere tutte le righe da dbo.Customer in cui Age è maggiore di qualsiasi valore della colonna Age in dbo.Customer, utilizzeremo>Any.
>ANY significa maggiore di almeno un valore, ovvero maggiore rispetto al minimo.
Select * From dbo.Customer where Age>ANY ( Select age from dbo.Customer1)
Abbiamo ottenuto gli stessi record restituiti dalla nostra prima query.
Se utilizzerai =ANY che è uguale a IN. Con ANY puoi utilizzare diversi operatori di confronto come =, <> , !=,> ,>=, !> , <, <=, !<
Video Demo:come utilizzare QUALSIASI/ALCUN operatore logico in SQL Server