Điều kiện IN được sử dụng trong SQL Server (Transact-SQL) để giảm thiểu nhu cầu sử dụng quá nhiều điều kiện HOẶC trong các câu lệnh SELECT, INSERT, UPDATE hoặc DELETE.
Cú pháp của điều kiện IN
biểu thức IN (giá trị 1, giá trị 2, … giá trị n);
Tên biến hoặc giá trị biến
biểu thức
Giá trị cần kiểm tra
giá trị 1, giá trị 2 ,. giá trị n
Các giá trị cần kiểm tra với các biểu thức
Lưu ý
- Điều kiện IN trong SQL Server sẽ trả về các bản ghi khi biểu thức có giá trị 1, giá trị 2,. hoặc giá trị n.
- Đ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 I
N ('Smith', 'Anderson', 'Johnson');
Kết quả sẽ là các hàng trong bảng nếu họ của nhân viên là Smith, Anderson hoặc Johnson. Do sử dụng * trong câu lệnh SELECT, tất cả các trường trong mục lục sẽ nằm trong tập kết quả.
Ví dụ trên tương tự với lệnh SELECT bên dưới.
SELECT *
FROM nhanvien
WHERE ho = 'Smith'
OR ho = 'Anderson'
OR ho = 'Joh
nson';
Sử dụng điều kiện IN giúp lệnh trông ngắn hơn và dễ hiểu hơn.
Ví dụ - với các giá trị số
SELECT *
FROM nhanvien
WHERE nha
nvien_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 lệnh sau.
SELECT*
FROM nhanvien
WHERE nhanvien_id = 1
OR nhanvien_id = 2
OR nhanvien_id = 3
OR nhanvien_id = 4
OR nhanvien_i
d = 10;
Ví dụ - sử dụng toán tử NOT
SELECT *
FROM nhanvien
WHERE t
en NOT IN ('Sarah', 'John', 'Dale');
Trong ví dụ trên, tập kết quả bao gồm các hàng từ bảng có tên nhân viên không phải là Sarah, John hoặc Dale. Đôi khi bạn dễ dàng tìm thấy các giá trị không phải là giá trị bạn muốn. Ví dụ trên tương đương với lệnh dưới đây.
SELECT *
FROM nhanvien
WHERE ten <> 'Sarah'
AND ten <> 'John'
AND ten <> 'Dale';