Poznámka:SOME a ANY jsou ekvivalentní. V níže uvedených příkladech použijeme ANY.
Scénář:
Řekněme, že máme dvě tabulky dbo.Customer a dbo.Customer1. Obě tabulky mají sloupec Věk. Pokud potřebujete získat všechny záznamy z tabulky dbo.Customer, kde je věk alespoň větší než jedna hodnota ze sloupce Age z tabulky dbo.Customer1.Řešení:
K napsání našeho dotazu na výše uvedený požadavek můžeme použít poddotaz a funkci MIN. Nejprve vytvořte tabulky.--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) Získejte všechny záznamy z tabulky dbo.Customer, kde je Věk větší než minimální hodnota Věk tabulky dbo.Customer1 pomocí funkce Poddotaz a Min.
Select * From dbo.Customer where Age> ( Select MIN(age) from dbo.Customer1)
2) Použijte ANY k získání požadovaných výsledků.
Můžeme použít ANY místo použití funkce Min s poddotazem. Protože chceme získat všechny řádky z dbo.Customer, kde je věk větší než jakákoli hodnota ve sloupci Age v dbo.Customer, použijeme>Any.
>ANY znamená větší než alespoň jednu hodnotu, to znamená větší než minimum.
Select * From dbo.Customer where Age>ANY ( Select age from dbo.Customer1)
Získali jsme stejné záznamy, jaké byly vráceny naším prvním dotazem.
Pokud použijete =ANY, je rovno IN. S ANY můžete použít různé porovnávací operátory, jako je =, <> , !=,> ,>=, !> , <, <=, !<
Video Demo :Jak používat JAKÝKOLI / SOME logický operátor v SQL Server