gpt4 book ai didi

Oracle 条件 where 子句

转载 作者:行者123 更新时间:2023-12-04 18:23:54 28 4
gpt4 key购买 nike

有什么方法可以编写具有以下功能的查询,添加 where 子句作为条件方式,

      select e.emp_id, emp.admin_user from employees e

if emp.admin != 'Y'

then

query run with where clause

else

query run without where clause ?

最佳答案

使用 案例 中的表达式哪里条款应该可以解决问题。当你说如果条件不满足你不需要 where 子句,那么你想要的只是一个像 WHERE 1 = 1 这样的条件。 ,即当条件不满足时返回所有行。所以,你需要像往常一样使不满足条件 .

例如,

我有一张员工表,

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>

我想选择员工详细信息,如果部门是 20 则使用 where 子句 else 返回所有员工详细信息,但过滤满足 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>

因此,对于部门 20,过滤器由 where 子句应用,我只得到 ename SCOTT 的行,对于其他部门,它返回所有行。

关于Oracle 条件 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29027425/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com