Kết hợp điều kiện AND và OR trong SQL Server

Bài viết hướng dẫn cách dùng kết hợp điều kiện AND và điều kiện OR trong SQL Server (Transact-SQL).

Đã có các bài hướng dẫn riêng về điều kiện AND và điều kiện OR trong SQL Server. Nhưng ngoài ra, 2 điều kiện này còn có thể kết hợp sử dụng trong các lệnh SELECT, INSERT, UPDATE và DELETE.

Khi kết hợp 2 điều kiện này, cần phải nhớ dùng dấu ngoặc đơn để cơ sở dữ liệu biết được thứ tự thực hiện từng điều kiện.

Cú pháp kết hợp điều kiện AND và điều kiện OR

WHERE “điều kiện 1”
AND “điều kiện 2”

OR “điều kiện n”;

Tên biến và giá trị biến

điều kiện 1, điều kiện 2… điều kiện n

Các điều kiện được đánh giá để xác định xem bản ghi có được lựa chọn hay không.

Lưu ý

  • Điều kiện AND và OR cho phép kiểm tra nhiều điều kiện
  • Đừng quên thứ tự thực hiện, xác định bằng dấu ngoặc đơn

Ví dụ - lệnh SELECT

SELECT *
FROM nhanvien
WHERE (ho = ‘Anderson’ AND ten = ‘Sarah’)
OR (nhanvien_id = 75);

Lệnh này sẽ trả về tất cả các nhân viên có họ là Anderson và tên là Sarah hoặc có ID là 75. Dấu ngoặc đơn xác định thứ tự thực hiện các điều kiện.

SELECT nhanvien_id, ho, ten
FROM nhanvien
WHERE (ho = ‘Smith’)
OR (ho = ‘Anderson’ AND ten = ‘Sarah’)
OR (nhanvien_id > 1000 AND bang = ‘California’);

Ở ví dụ này, kết quả trả về ID của nhân viên, họ và tên nếu người đó có chọ là Smith; hoặc họ là Anderson và tên là Sarah; hoặc ID của nhân viên lớn hơn 1000 và bang là California.

Ví dụ - lệnh INSERT

INSERT INTO danhba
(ho, ten)
SELECT ho, ten
FROM nhanvien
WHERE (ho = ‘Johnson’ OR ho = ‘Anderson’)
AND nhanvien_id > 54;

Ví dụ này sẽ chèn vào bảng danhba tất cả các giá trị họ và tên từ bảng nhanvien với những ai có họ là Johnson hoặc Anderson và có ID lớn hơn 54

Ví dụ - lệnh UPDATE

UPDATE nhanvien
SET ho = ‘TBD’
WHERE nhanvien_id <= 2000
AND (bang = ‘California’ OR bang = ‘Arizona’);

Ở lệnh này, các giá trị họ của nhân viên sẽ được cập nhật thành TBD nếu ID của nhân viên nhỏ hơn hoặc bằng 2000 và sống ở bang California hoặc Arizona.

Ví dụ - lệnh DELETE

DELETE FROM nhanvien
WHERE bang = ‘California’
AND (ho = ‘Johnson’ OR ten = ‘Joe’);

Ở ví dụ này, kết hợp điều kiện AND và OR trong lệnh DELETE sẽ xóa tất cả bản ghi trong bảng nhanvien nếu giá trị bang là California và nhân viên có họ là Johnson hoặc tên là Joe.

Bài trước: Điều kiện OR trong SQL Server

Bài tiếp: Mệnh đề DISTINCT trong SQL Server

Thứ Sáu, 10/05/2019 10:42
51 👨 3.104