Trong SQL Server, điều kiện AND (hay toán tử AND) dùng để kiểm tra hai hoặc nhiều điều kiện trong câu lệnh SELECT, INSERT, UPDATE hoặc DELETE.
Cú pháp điều kiện AND
WHERE 'dieu_kien_1'
AND 'dieu_kien_2'
…
AND 'dieu_kien_n';
Tham số
dieu_kien_1, dieu_kien_2, … dieu_kien_n: Các điều kiện bản ghi phải thỏa mãn để được chọn.
Lưu ý
- Điều kiện
ANDtrong SQL Server cho phép kiểm tra hai hoặc nhiều điều kiện. - Điều kiện
ANDtrong SQL Server yêu cầu tất cả điều kiện phải thỏa mãn, bản ghi mới được đưa vào tập kết quả.
Ví dụ – với câu lệnh SELECT
SELECT *
FROM nhanvien
WHERE ho = 'Smith'
AND nhanvien_id < 499;
Kết quả ví dụ này trả về tất cả nhân viên họ Smith và nhanvien_id nhỏ hơn 499. Do dùng * trong SELECT, tất cả trường trong bảng nằm trong tập 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';
Mặc dù ví dụ trên vẫn chạy, thường cần viết dưới dạ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';
Trong ví dụ này, kết quả trả về bao gồm tất cả hàng có tên nhân viên là Sarah trong bảng. Bảng nhân viên và danh bạ kết nối bằng nhanvien_id và danhba_id.
Lưu ý tất cả trường thông tin được tiền tố bằng tên bảng (ví dụ danhba.ten). Điều này bắt buộc để tránh mơ hồ trường tham chiếu, ví dụ khi hai bảng có cùng tên trường.
Trong trường hợp này, kết quả chỉ hiển thị 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 chèn vào danh bạ tất cả giá trị ID, họ, tên từ bảng với người tên 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 cập nhật tất cả giá trị trong bảng thành Johnson khi họ nhân viên 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 xóa tất cả bản ghi trong bảng nếu nhân viên tên Darlene và họ Henderson.