Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> SQL Server

Điều kiện IN trong SQL Server

Điều kiện IN trong SQL Server (Transact-SQL) được dùng để giảm thiểu việc sử dụng quá nhiều điều kiện OR trong các câu lệnh SELECT, INSERT, UPDATE hoặc DELETE.

Cú pháp điều kiện IN

bieu_thuc IN (gia_tri_1, gia_tri_2, … gia_tri_n);

Tham số

bieu_thuc: Giá trị cần kiểm tra.

gia_tri_1, gia_tri_2, … gia_tri_n: Các giá trị để kiểm tra với biểu thức.

Lưu ý

  1. Điều kiện IN trong SQL Server sẽ trả về bản ghi khi biểu thức có giá trị bằng 1 trong các giá trị gia_tri_1, gia_tri_2, … hoặc gia_tri_n.
  2. Điều kiện IN trong SQL Server còn được gọi là toán tử IN.

Ví dụ – với giá trị chuỗi

SELECT *
FROM nhanvien
WHERE ho IN ('Smith', 'Anderson', 'Johnson');

Kết quả sẽ là các dòng từ bảng nếu họ nhân viên là Smith, Anderson hoặc Johnson. Do dùng * trong câu SELECT, tất cả các trường trong bảng sẽ có trong tập kết quả.

Ví dụ trên tương đương với lệnh SELECT dưới đây.

SELECT *
FROM nhanvien
WHERE ho = 'Smith'
OR ho = 'Anderson'
OR ho = 'Johnson';

Sử dụng điều kiện IN giúp lệnh trông gọn gàng và dễ hiểu hơn.

Ví dụ – với giá trị số

SELECT *
FROM nhanvien
WHERE nhanvien_id IN (1, 2, 3, 4, 10);

Kết quả trả về là nhân viên có ID là 1, 2, 3, 4 hoặc 10. Lệnh trên tương đương với:

SELECT *
FROM nhanvien
WHERE nhanvien_id = 1
OR nhanvien_id = 2
OR nhanvien_id = 3
OR nhanvien_id = 4
OR nhanvien_id = 10;

Ví dụ – sử dụng toán tử NOT

SELECT *
FROM nhanvien
WHERE ten NOT IN ('Sarah', 'John', 'Dale');

Trong ví dụ trên, tập kết quả gồm các dòng từ bảng có tên nhân viên khác Sarah, John hoặc Dale. Đôi khi dễ dàng hơn để tìm các giá trị không phải những gì bạn muốn. Ví dụ trên tương đương với lệnh sau:

SELECT *
FROM nhanvien
WHERE ten <> 'Sarah'
AND ten <> 'John'
AND ten <> 'Dale';