oracle中判断语句怎么写?

如题所述

第1个回答  推荐于2016-08-08
是存储过程里面的 IF/ELSE ? 还是简单的 DECODE ?

SQL> DECLARE
2 testvalue INT;
3 BEGIN
4 testvalue := 100;
5
6 IF testvalue > 100 THEN
7 dbms_output.put_line( '100+' );
8 ELSIF testvalue = 100 THEN
9 dbms_output.put_line( '100' );
10 ELSE
11 dbms_output.put_line( '100-' );
12 END IF;
13
14 END;
15 /
100

PL/SQL procedure successfully completed.

SQL> SELECT
2 DECODE(GROUPING(sale_item), 1, 'ALL', sale_item) AS iten,
3 SUM(sale_money) AS money
4 FROM
5 sale_report
6 GROUP BY
7 ROLLUP(sale_item);

ITEN MONEY
------ ----------
A 733285
B 2382
C 5738
ALL 741405本回答被提问者和网友采纳
第2个回答  2011-04-18
ORACLE中关于判断的,如果是单条SQL,可以使用DECODE和CASE WHEN ,如果在PL/SQL 块中使用,可以使用IF语句
第3个回答  2011-04-16
declare
str varchar2(10);
num numeric(20,1);
begin
str:='tiger';
num:=9;
if str='tiger' and num>10 then
dbms_ouput.putline('more then 10 tigers');
end if;
end;
/

关系操作符主要用于条件判断语句或用于where子串中,关系操作符检查条件和结果是否为true或false,表5是PL/SQL中的关系操作符

operator operation
< 小于操作符
<= 小于或等于操作符
> 大于操作符
>= 大于或等于操作符
= 等于操作符
!= 不等于操作符
<> 不等于操作符
:= 赋值操作符
第4个回答  2018-07-25
SELECT
  distinct id,state,name
FROM
  table1 main
WHERE
  NOT EXISTS( select 1 FROM table1 sub where main.id=sub.id AND main.state<sub.state);

未经测试。。。纯属手写,,如果以自己多年经验来说的话。。这段话应该不会有多大问题。。。希望你自己仔细测试之后能够提出宝贵意见!!!

第5个回答  推荐于2018-03-02
还有case语句:
select case when 条件1 then 值1 else when 条件2 then 值2 else 值3 end as 字段别名
from table