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

Mệnh đề where có điều kiện trong Oracle

Sử dụng CASE trong WHERE mệnh đề nên làm thủ thuật. Khi bạn nói rằng bạn không cần mệnh đề where nếu điều kiện không được đáp ứng, thì tất cả những gì bạn muốn là một điều kiện như WHERE 1 = 1 , tức là khi điều kiện không được đáp ứng thì trả về tất cả các hàng. Vì vậy, bạn cần đặt điều kiện không được đáp ứng luôn là ĐÚNG .

Ví dụ:

Tôi có một bảng nhân viên,

SQL> SELECT empno, ename, deptno
  2  FROM emp;

     EMPNO ENAME          DEPTNO
---------- ---------- ----------
      7369 SMITH              20
      7499 ALLEN              30
      7521 WARD               30
      7566 JONES              20
      7654 MARTIN             30
      7698 BLAKE              30
      7782 CLARK              10
      7788 SCOTT              20
      7839 KING               10
      7844 TURNER             30
      7876 ADAMS              20
      7900 JAMES              30
      7902 FORD               20
      7934 MILLER             10

14 rows selected.

SQL>

Tôi muốn chọn chi tiết nhân viên, nếu phòng ban là 20 thì hãy sử dụng mệnh đề where khác trả về tất cả chi tiết nhân viên, nhưng lọc phòng ban đáp ứng điều kiện where.

SQL> SELECT empno, ename, deptno
  2  FROM emp
  3  WHERE ename =
  4    CASE
  5      WHEN deptno = 20
  6      THEN 'SCOTT'
  7      ELSE ename
  8    END
  9  /

     EMPNO ENAME          DEPTNO
---------- ---------- ----------
      7499 ALLEN              30
      7521 WARD               30
      7654 MARTIN             30
      7698 BLAKE              30
      7782 CLARK              10
      7788 SCOTT              20
      7839 KING               10
      7844 TURNER             30
      7900 JAMES              30
      7934 MILLER             10

10 rows selected.

SQL>

Vì vậy, đối với bộ 20, bộ lọc được áp dụng theo mệnh đề where và tôi chỉ nhận được hàng cho ename SCOTT, đối với các bộ khác, bộ lọc trả về tất cả các hàng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cx_Oracle.DatabaseError:ORA-12514:TNS:người nghe hiện không biết dịch vụ được yêu cầu trong bộ mô tả kết nối

  2. Làm cách nào để xem các truy vấn được thực thi với Oracle?

  3. Sự cố kết nối Hikaricp Oracle

  4. Làm cách nào để chèn BLOB vào Oracle bằng Python?

  5. lấy danh sách các số ở giữa hai cột