Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Toán tử ALL VS Bất kỳ trên một truy vấn trống

Hãy xem xét ví dụ về EMP trong liên kết đó.

Cụ thể là truy vấn này -

SELECT e1.empno, e1.sal
FROM   emp e1
WHERE  e1.sal > ANY (SELECT e2.sal
                     FROM   emp e2
                     WHERE  e2.deptno = 20);

Trong trường hợp BẤT KỲ, câu hỏi bạn đang hỏi là "Lương của tôi có lớn hơn bất kỳ ai trong bộ phận 20 (ít nhất 1 người)". Điều này có nghĩa là bạn đang hy vọng ít nhất một người có mức lương thấp hơn bạn. Khi không có hàng, nó trả về FALSE bởi vì không có ai có mức lương thấp hơn bạn, bạn đã hy vọng ít nhất một người.

Trong trường hợp TẤT CẢ, câu hỏi rõ ràng bạn sẽ hỏi là "Lương của tôi có lớn hơn mọi người không?". Nói lại điều đó là "Có ai có mức lương cao hơn tôi không?" Khi không có hàng nào được trả lại, câu trả lời của bạn là TRUE , bởi vì "thực sự không có ai có mức lương cao hơn tôi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng dung lượng cao từ crfclust.bdb

  2. Nhận danh sách các hàm và chữ ký thủ tục từ oracle

  3. Sql tĩnh so với động

  4. oracle sqlldr -> ký hiệu không xác định:sldext

  5. Dữ liệu từ hai bảng vào một chế độ xem