如果满足第一个条件,是否可以在Oracle SQL中摆脱困境



eg是否有任何关键字或方法可以在下面执行:

SELECT  CASE
          WHEN ENAME like 'Arnold%' THEN DESIGNATION
          /* something_which_can_exit_without_going_to_next_case */
          ELSE ENAME
        END AS "RESULT"
FROM    EMP;

您了解CASE的工作原理吗?它评估条件,直到第一次满足。考虑此查询:

SELECT (CASE WHEN ENAME like 'Arnold%' THEN DESIGNATION
             ELSE ENAME
        END) AS RESULT
FROM EMP;

当满足条件时,它返回DESIGNATION,而ENAME则返回。如果在不匹配的情况下需要NULL,请省略ELSE子句:

SELECT (CASE WHEN ENAME like 'Arnold%' THEN DESIGNATION
        END) AS RESULT
FROM EMP;

如果您只需要匹配结果集中条件的ENAME S,则使用WHERE

SELECT DESIGNATION AS RESULT
FROM EMP
WHERE ENAME like 'Arnold%';

最新更新