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

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

Bài viết giải thích cách sử dụng điều kiện AND và OR trong SQL Server (Transact-SQL).

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

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

Cú pháp kết hợp AND và OR

WHERE 'dieu_kien_1'
AND 'dieu_kien_2'
…
OR 'dieu_kien_n';

Tên tham số và giá trị

dieu_kien_1, dieu_kien_2, … dieu_kien_n: Các điều kiện được đánh giá để xác định bản ghi có được chọn hay không.

Lưu ý

  1. Điều kiện AND và OR cho phép kiểm tra nhiều điều kiện.
  2. Đừng quên thứ tự thực thi, được xác định bởi dấu ngoặc.

Ví dụ – lệnh SELECT

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

Lệnh này trả về tất cả nhân viên có họ Anderson và tên Sarah hoặc có ID 75. Dấu ngoặc xác định thứ tự thực thi đ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');

Trong ví dụ này, kết quả trả về ID nhân viên, họ và tên nếu người đó là Smith; hoặc họ Anderson và tên Sarah; hoặc ID 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 chèn vào danh bạ tất cả giá trị họ và tên từ những người có họ Johnson hoặc Anderson và 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');

Trong lệnh này, họ nhân viên sẽ cập nhật thành TBD nếu ID nhân viên nhỏ hơn hoặc bằng 2000 và sống ở California hoặc Arizona.

Ví dụ – lệnh DELETE

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

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