22/08/2018, 11:01

Điều kiện AND trong SQL Server

Trong SQL Server, điều kiện AND (hay còn gọi là toán tử AND) được dùng để kiểm tra 2 hoặc nhiều điều kiện trong các lệnh SELECT, INSERT, UPDATE hoặc DELETE. Cú pháp điều kiện AND WHERE “điều kiện 1” AND “điều kiện 2” … AND ...

Trong SQL Server, điều kiện AND (hay còn gọi là toán tử AND) được dùng để kiểm tra 2 hoặc nhiều điều kiện trong các lệnh SELECT, INSERT, UPDATE hoặc DELETE.

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

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

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

Tên biến hoặc 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 mà bản ghi phải đáp ứng để được chọn.

Ghi chú

  • Điều kiện AND trong SQL Server cho phép kiểm tra 2 hoặc nhiều điều kiện hơn.
  • Điều kiện AND trong SQL Server yêu cầu tất cả các điều kiện đều phải được đáp ứng thì bản ghi mới được đưa vào bộ kết quả.

Ví dụ - với lệnh SELECT

SELECT *
FROM nhanvien
WHERE ho = ‘Smith’
AND nhanvien_id < 499;

Kết quả trong ví dụ này sẽ trả về tất cả các nhân viên có họ là Smith và nhanvien_id nhỏ hơn 499. Do * được dùng trong lệnh SELECT nên tất cả các trường trong bảng nhanvien sẽ nằm trong bộ kết quả.

Ví dụ - kết hợp bảng 

SELECT nhanvien.nhanvien_id, danhba.ho
FROM nhanvien, danhba
WHERE nhanvien.nhanvien_id = danhba.danhba_id
AND nhanvien.ten = ‘Sarah’;

Dù ví dụ trên vẫn chạy được nhưng thông thường sẽ cần viết bằng INNER JOIN.

SELECT nhanvien.nhanvien_id, danhba.ho
FROM nhanvien
INNER JOIN danhba
ON nhanvien.nhanvien_id = danhba.danhba_id
WHERE nhanvien.ten = ‘Sarah’;

Ở ví dụ này, kết quả trả về sẽ gồm tất cả các hàng có tên của nhân viên là Sarah trong bảng nhanvien. Bảng nhanvien và danhba kết nối bằng nhanvien_id và danhba_id.

Lưu ý là mọi trường thông tin đều được đặt tên sau tên bảng (ví dụ danhba.ten). Điều này là bắt buộc, để tránh tình trạng không rõ ràng về trường thông tin được tham chiếu, ví dụ như khi 2 bảng có cùng một trường thông tin.

Trong trường hợp này, kết quả trả về sẽ chỉ có nhanvien_id và ho.

Ví dụ - lệnh INSERT

INSERT INTO danhba
(danhba_id, ho, ten)
SELECT nhanvien_id, ho, ten
FROM nhanvien
WHERE ten = ‘Joanne’
AND nhanvien_id >= 800;

Điều kiện AND trong ví dụ này sẽ chèn vào bảng danhba tất cả nhanvien_id, ten và ho từ bảng nhanvien với những ai có tên là Joanne và nhanvien_id lớn hơn hoặc bằng 800.

Ví dụ - lệnh UPDATE

UPDATE nhanvien
SET ho = ‘Johnson’
WHERE ho = ‘TBD’
AND nhanvien_id < 300;

Ví dụ này sẽ cập nhật tất cả giá trị họ trong bảng nhanvien thành Johnson khi họ của nhân viên đang có giá trị là TBD và nhanvien_id nhỏ hơn 300.

Ví dụ - lệnh DELETE

DELETE FROM nhanvien
WHERE ten = ‘Darlene’
AND ho = ‘Henderson’;

Lệnh này sẽ xóa tất cả các bản ghi nằm trong bảng nhanvien nếu nhân viên có tên là Darlene và họ là Henderson.

Bài trước: Mệnh đề ORDER BY trong SQL Server

Bài tiếp: Điều kiện OR trong SQL Server

0