Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách sử dụng Toán tử logic EXISTS trong SQL Server - Hướng dẫn SQL Server / TSQL Phần 125

Exists trả về TRUE nếu một truy vấn con chứa bất kỳ hàng nào. EXISTS được sử dụng khi chúng ta muốn kiểm tra sự tồn tại của các hàng được chỉ định bởi truy vấn con.

Hãy tạo dbo.Customer và dbo.Country Table, sau đó sử dụng EXISTS để trả về các bản ghi cho các trường hợp khác nhau.

Create table dbo.Customer
 (Id int,
  FName VARCHAR(50),
  LName VARCHAR(50),
  CountryShortName CHAR(2),
  Age tinyint)
GO
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),
(7,'Raza','M','US',33),
(8,'Dita','M','US',15),
(9,'Adita','M','US',29)


Create table dbo.Country ( 
CId tinyint,
CountryName VARCHAR(50),
CountryShortName CHAR(2))
go
Insert into dbo.Country 
Values 
(1,'Pakistan','Pk'),
(2,'United States of America','US')


1) EXISTS sẽ trả về TRUE nếu truy vấn con chứa bất kỳ hàng nào.

Đúng vậy, nếu truy vấn con của chúng ta sẽ trả về bất kỳ hàng nào và chúng ta đã sử dụng EXISTS, thì truy vấn bên ngoài sẽ trả về tất cả các hàng.

Chọn * từ dbo. br />
WHERE Exists ( Select 1)
 
 
Cách sử dụng EXISTS trong SQL Server - Hướng dẫn SQL Server / TSQL

Nhận thấy rằng truy vấn con của chúng tôi là truy vấn tĩnh (Chọn 1). Vì truy vấn con đã trả về hàng và EXISTS trả về TRUE nên tất cả các bản ghi từ bảng dbo.Customer được hiển thị.

2) Sử dụng EXISTS và kết hợp với SubQuery
Ví dụ thời gian thực hơn về EXISTS sẽ là khi chúng ta muốn tìm tất cả các bản ghi từ bảng dbo.Customer có CountryShortName phù hợp từ bảng dbo.Country.

SELECT *
FROM dbo.Customer a
WHERE EXISTS
    (SELECT 1
     FROM dbo.Country b
     WHERE a.CountryShortName=b.CountryShortName)

Nhận thấy rằng tôi đã so sánh CountryShortName từ dbo.Customer và dbo.Country. Mỗi hàng bên ngoài sẽ được so sánh với kết quả truy vấn con và nếu khớp, thì chúng ta sẽ nhận được hàng.

Chúng ta có thể sử dụng mệnh đề IN cho cùng một yêu cầu.

SELECT *
FROM dbo.Customer a
WHERE a.CountryShortName IN
    (SELECT b.CountryShortName
     FROM dbo.Country b
     WHERE a.CountryShortName=b.CountryShortName)
 
Cách sử dụng EXISTS trong SQL Server để trả về các bản ghi phù hợp - Hướng dẫn SQL Server / TSQL
 

Cách sử dụng Exists và Not Exit trong SQL Server
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ghi tệp csv vào cơ sở dữ liệu SQL Server bằng python

  2. Tại sao lại sử dụng mệnh đề INCLUDE khi tạo chỉ mục?

  3. Hiểu kích thước lưu trữ ‘thời gian’ trong SQL Server

  4. Giá trị cột danh tính đột nhiên nhảy đến 1001 trong máy chủ sql

  5. Lấy ký tự giữa 2 ký tự đặc biệt đầu tiên trong SQL