Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle案例陈述_Oracle - Fatal编程技术网

Oracle案例陈述

Oracle案例陈述,oracle,Oracle,考虑下表,并给出了结果集。现在,如何在满足其中一个条件后仅获取一条记录 SQL> SELECT ename 2 , job 3 , CASE 4 WHEN sal < 1000 5 THEN 'Low paid' 6 WHEN sal BETWEEN 1001 AND 2000 7 THEN 'Reasonably well paid' 8

考虑下表,并给出了结果集。现在,如何在满足其中一个条件后仅获取一条记录

SQL> SELECT ename
  2  ,      job
  3  ,      CASE
  4            WHEN sal < 1000
  5            THEN 'Low paid'
  6            WHEN sal BETWEEN 1001 AND 2000
  7            THEN 'Reasonably well paid'
  8            WHEN sal BETWEEN 2001 AND 3001
  9            THEN 'Well paid'
 10            ELSE 'Overpaid'
 11         END AS pay_status
 12  FROM   emp;

ENAME      JOB       PAY_STATUS
---------- --------- --------------------
SMITH      CLERK     Low paid
ALLEN      SALESMAN  Reasonably well paid
WARD       SALESMAN  Reasonably well paid
JONES      MANAGER   Well paid
MARTIN     SALESMAN  Reasonably well paid
BLAKE      MANAGER   Well paid
CLARK      MANAGER   Well paid
SCOTT      ANALYST   Well paid
KING       PRESIDENT Overpaid
TURNER     SALESMAN  Reasonably well paid
ADAMS      CLERK     Reasonably well paid
JAMES      CLERK     Low paid
FORD       ANALYST   Well paid
MILLER     CLERK     Reasonably well paid

若要为满足的每个条件仅获取一条记录,请在SELECT语句中应用DISTICT

SQL>选择不同的名称 2、工作 3、案例 4当sal<1000时 5然后是“低收入” 6当sal在1001和2000之间时 7然后是“合理的高薪” 8当sal在2001年至3001年间 9然后“高薪” 10其他“多付” 11以支付状态结束 环境管理计划12份;

您可以使用rownum函数,但如果第一个条件失败,即此条件不存在记录,第二个条件通过,应仅返回第二行,依此类推。rownum将随机返回整个结果集中的有限记录。但是,OP希望每个条件都有不同的行。假设您给出的结果集不是您希望的结果集,您可以详细说明您期望的结果集吗。