Tìm hiểu BETWEEN trong Oracle
Trong bài này chúng ta sẽ tìm hiểu lệnh BETWEEN trong Oracle, nó dùng đê kiểm tra điều kiện trong một khoảng nào đó, có thể là một khoảng các số tự nhiên, một khoảng ngày tháng ...
1. Lệnh BETWEEN trong Oracle
Lệnh này thường được sử dụng trong SELECT là chính, và nếu bạn có viết function hay procedure thì cũng được sử dụng khá thường xuyên.
BETWEEN value1 AND value2
Trong đó:
- value1 là giá trị đầu tiên, tức giới hạn trên
- value2 là giá trị cuối cùng, tức giới hạn dưới
Lưu ý: value1 phải nhỏ hơn hoặc bằng value2, nếu không kết quả sẽ không như mong đợi.
Bài viết này được đăng tại [free tuts .net]
Ví dụ: Lấy danh sách bài viết có id trong khoảng từ 1 đến 1000
SELECT * FROM posts WHERE post_id BETWEEN 1 AND 1000
SELECT * FROM posts WHERE post_id >= 1 AND post_id <= 1000
Ví dụ: Lấy danh sách đơn hàng có ngày đặt hàng từ ngày 2014/02/01 đến ngày 2014/02/28
SELECT * FROM order_details WHERE order_date BETWEEN TO_DATE ('2014/02/01', 'yyyy/mm/dd') AND TO_DATE ('2014/02/28', 'yyyy/mm/dd');
SELECT * FROM order_details WHERE order_date >= TO_DATE('2014/02/01', 'yyyy/mm/dd') AND order_date <= TO_DATE('2014/02/28','yyyy/mm/dd');
2. Lệnh NOT BETWEEN trong oracle
Ngược lại với BETWEEN, lệnh NOT BETWEEN sẽ kiểm tra giá trị có phải không nằm trong khoảng nào đó hay không.
NOT BETWEEN value1 AND value2
Trong đó value1 và value2 được giải thích như trên.
Ví dụ: Lấy danh sách bài viết có ID không nằm trong khoảng 500 đến 2000
SELECT * FROM posts WHERE post_id NOT BETWEEN 500 AND 2000
SELECT * FROM posts WHERE post_id < 500 OR post_id > 2000
Ví dụ: Lấy danh sách khách hàng có ID không nằm trong khoảng 3000 đến 3500
SELECT * FROM customers WHERE customer_id NOT BETWEEN 3000 AND 3500;
SELECT * FROM customers WHERE customer_id < 3000 OR customer_id > 3500;
3. Lời kết
Trên là hai cách sử dụng BETWEEN và NOT BETWEEN trong Oracle. Với mỗi bài toán ngoài cách sử dụng lệnh này thì bạn có thể sử dụng lệnh AND để thay cho BETWEEN và lệnh OR để thay cho NOT BETWEEN.