sql >> Databáze >  >> RDS >> Sqlserver

Jak používat JAKÝKOLI / NĚKTERÝ logický operátor v SQL Server - SQL Server / TSQL výukový program, část 127

KTERÝKOLI logický operátor vrátí hodnotu TRUE, pokud má kterékoli ze sady porovnání hodnotu TRUE. ANY porovnává skalární hodnotu se sadou hodnot v jediném sloupci.

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

  1. Nelze se připojit k místnímu serveru MySQL přes soket '/tmp/mysql.sock

  2. Microsoft Access Web App vs Desktop Database

  3. Jak mohu použít funkci CONCAT v SQL Server 2008 R2?

  4. Oříznutí tuku protokolu transakcí