sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man använder NÅGON / NÅGON logisk operatör i SQL Server - SQL Server / TSQL självstudie del 127

NÅGON logisk operator returnerar TRUE om någon av en uppsättning jämförelser är TRUE. ANY jämför ett skalärt värde med en enstaka kolumnuppsättning värden.

Obs! VISSA och ALLA är likvärdiga. Vi kommer att använda ALLA i våra exempel nedan.

Scenario :

Låt oss säga att vi har två tabeller dbo.Customer och dbo.Customer1. Båda tabellerna har kolumnen Ålder. Om du behöver hämta alla poster från dbo.Customer-tabellen där Ålder är åtminstone större än ett värde från kolumnen Ålder från tabellen dbo.Customer1.

Lösning:

Vi kan använda subquery och MIN-funktion för att skriva vår fråga för ovanstående krav. Låt oss skapa tabellerna först.

--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) Hämta alla poster från dbo.Customer-tabellen där Ålder är större än min Åldervärde för dbo.Customer1-tabellen genom att använda Subquery och Min-funktionen.
 
Select * From dbo.Customer
where Age> ( Select MIN(age) from dbo.Customer1)
 
 
 
 2) Använd ALLA för att få önskade resultat.
Vi kan använda ALLA istället för att använda Min-funktionen med subquery. Eftersom vi vill hämta alla rader från dbo.Customer där Age är större än något värde i Age-kolumnen i dbo.Customer kommer vi att använda>Any.
>ANY betyder större än minst ett värde, det vill säga större än minimum.

Select * From dbo.Customer
where Age>ANY ( Select age from dbo.Customer1)
 
 
 Vi fick samma poster som returnerades av vår första fråga.
Om du använder =ANY som är lika med IN. Med ALLA kan du använda olika jämförelseoperatorer som =, <> , !=,> ,>=, !> , <, <=, !<



Video Demo :Hur man använder NÅGON / NÅGON logisk operatör i SQL Server

  1. Använder RegEx i SQL Server

  2. Lista de frågor som körs på SQL Server

  3. Hur kör man en lagrad procedur i sql-servern varje timme?

  4. Android rum + fönsterfunktioner