Нека разберем ВСИЧКИ с примери.
Сценарий :
Помислете за сценарий, при който имаме две таблици dbo.Customer и dbo.Customer1. И двете таблици имат колоната Възраст. Ако трябва да получите всички записи от таблицата dbo.Customer, където Age е по-голяма от максималната стойност на колоната Age в таблицата dbo.Customer1. Каква би била вашата заявка.Решение:
Можем да използваме подзаявка и функция max, за да напишем нашата заявка за горното изискване. Нека първо създадем таблиците.--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',20), (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) Вземете всички записи от таблицата dbo.Customer, където възрастта е по-голяма от максималната стойност на възрастта на таблицата dbo.Customer1, като използвате функцията Subquery и Max.
2) използвайки ВСИЧКИ с SubQuery
За горното изискване можем използвайте ВСИЧКИ логически оператор. В този случай не е нужно да използваме функцията Max. ALL ще сравни стойността на нашата външна заявка с набор от стойности от подзаявка. Можем да използваме>Всички,>ВСИЧКИ означава по-голямо от всяка стойност, върната от подзаявка, С други думи по-голяма от максималната стойност.
Select * From dbo.Customer where Age> All ( Select age from dbo.Customer1)
Как да използвате ВСИЧКИ логически оператор в SQL Server - SQL Server / TSQL урок |
С ВСИЧКИ можете да използвате различни оператори за сравнение като =, <> , !=,> ,>=, !> , <, <=, !<
Видео демонстрация:Как да използвате ВСИЧКИ логически оператор в SQL / TSQL