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

Come utilizzare QUALSIASI / ALCUNI operatore logico in SQL Server - Tutorial SQL Server / TSQL Parte 127

ANY L'operatore logico restituisce VERO se uno qualsiasi di un insieme di confronti è VERO. ANY confronta un valore scalare con una singola colonna di valori.

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