sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan bruger du ENHVER / NOGEN logisk operatør i SQL Server - SQL Server / TSQL Tutorial Del 127

ENHVER logisk operator returnerer SAND, hvis en af ​​et sæt af sammenligninger er SAND. ANY sammenligner en skalarværdi med et enkelt kolonnesæt af værdier.

Bemærk:NOGLE og ALLE er ækvivalente. Vi vil bruge ALLE i vores eksempler nedenfor.

Scenarie:

Lad os sige, at vi har to tabeller dbo.Customer og dbo.Customer1. Begge tabeller har kolonnen Alder. Hvis du har brug for at hente alle posterne fra dbo.Customer-tabellen, hvor Alder er mindst større end én værdi fra Alder-kolonnen fra dbo.Customer1-tabellen.

Løsning:

Vi kan bruge underforespørgsel og MIN-funktion til at skrive vores forespørgsel til ovenstående krav. Lad os først oprette tabellerne.

--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) Hent alle posterne fra dbo.Customer-tabel, hvor Alder er større end min. Aldersværdi for dbo.Customer1-tabellen ved at bruge underforespørgsel og Min-funktion.
 
Select * From dbo.Customer
where Age> ( Select MIN(age) from dbo.Customer1)
 
 
 
 2) Brug ALLE for at få de ønskede resultater.
Vi kan bruge ALLE i stedet for at bruge Min funktion med underforespørgsel. Da vi ønsker at hente alle rækker fra dbo.Customer, hvor Alder er større end nogen værdi af Alderskolonnen i dbo.Customer, vil vi bruge>Any.
>ENHVER betyder større end mindst én værdi, dvs. større end minimum.

Select * From dbo.Customer
where Age>ANY ( Select age from dbo.Customer1)
 
 
 Vi fik de samme poster, hvad der blev returneret af vores første forespørgsel.
Hvis du vil bruge =ENHVER, som er lig med IN. Med ANY kan du bruge forskellige sammenligningsoperatorer såsom =, <> , !=,> ,>=, !> , <, <=, !<



Video Demo :Sådan bruger du ENHVER / NOGEN logisk operatør i SQL Server

  1. PostgreSQL:Auto-increment baseret på multi-kolonne unik begrænsning

  2. Hvornår kan vi bruge et identifikationsnummer i stedet for dets navn i PostgreSQL?

  3. Konfiguration af databasemailmeddelelser i MS SQL Server

  4. Bruger Oracle kortslutningsevaluering?