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

Đã 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 “điu kin 1 AND “điu kin 2  OR “điu kin 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.