06/04/2021, 14:51

hêm nhiều điều kiện với AND và OR trong Oracle - Oracle căn bản

Nếu bạn muốn thêm nhiều điều kiện vào WHERE thì chỉ cần sử dụng toán tử AND hoặc OR, đây là hai toán tử thường dùng nhất. Ví dụ bạn muốn tìm đơn hàng của khách hàng "Nguyễn Văn Cường" và khách hàng này phải ở "ĐăkLăk" thì sẽ sử dụng toán tử AND. name = "Nguyễn Văn Cường" AND province = ...

Nếu bạn muốn thêm nhiều điều kiện vào WHERE thì chỉ cần sử dụng toán tử AND hoặc OR, đây là hai toán tử thường dùng nhất. Ví dụ bạn muốn tìm đơn hàng của khách hàng "Nguyễn Văn Cường" và khách hàng này phải ở "ĐăkLăk" thì sẽ sử dụng toán tử AND.

name = "Nguyễn Văn Cường" AND province = 'ĐăkLăk'

1. Toán tử AND trong Oracle

Toán tử AND dùng để so sánh hai vế, vế phải và vế trái. Nó sẽ trả về TRUE nếu cả hai vế đều TRUE và trả về FALSE nếu một trong hai vế FALSE.

Về quy tắc hoạt động thì nó sẽ kiểm tra vế trái trước, nếu vế trái là FALSE thì nó sẽ trả về FALSE luôn, không cần phải kiểm tra vế phải.

Ví du: Lấy danh sách domain của khách hàng Cường và chỉ lấy domain nào có page view lớn hơn 20000.

SELECT *
FROM domains
WHERE 
	domain_owner = "Cuong"
	AND 
	domain_view > 20000

2. Toán tử OR trong Oracle

Khác với toán tử AND, toán tử OR sẽ trả về TRUE nếu một trong hai vế là TRUE, và trả về FALSE nếu cả hai vế đều FALSE. Ví dụ khi xét điều kiện để vào tham dự lễ hội thì chỉ cần khách hàng có vé hoặc khách hàng là nhân viên thì được tham gia. Như vậy chỉ cần khách thảo một trong hai điều kiện trên thì cho phép vào cổng.

Ví dụ: Lấy danh sách domain của khách hàng Kính và chỉ lấy domain có page view lớn hơn 20000 hoặc được đăng ký vào năm 2013.

SELECT *
FROM domains
WHERE 
	domain_owner = "Kính"
	OR
	register_year = 2013

3. Lời kết

Trên là cách sử dụng hai toán tử AND và OR trong Oracle, bạn phải hiểu rõ bản chất của nó thì sau này viết câu truy vấn SQL sẽ tối ưu hơn, tại sao lại tối ưu thì sẽ hẹn gặp lại các bạn ở một bài khác nhé, ở đó mình sẽ giải thích kĩ hơn, chứ bài này là căn bản nên đưa vào nhiều kiến thức quá bạn sẽ bị choáng.

Trần Trung Dũng

15 chủ đề

2610 bài viết

Cùng chủ đề
0