请教 sql语句中如何实现if 或case语句。

york_lin 2003-04-15 11:34:40
请教 sql语句中如何实现if 或case语句。
比如:
table1
select * from table1
no f1 f2
0001 2 9
0002 4 2

if f1>f2 f3=true
else f3 = false

如何写sql语句
能实现如下的效果
no f1 f2 f3
0001 2 9 false
0002 4 2 true
...全文
349 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
李海峡 2003-09-29
  • 打赏
  • 举报
回复
select no,f1,f2,decode(sign(f1-f2),1,'true','false')f3 from table
yangqingdelphi 2003-09-29
  • 打赏
  • 举报
回复
SELECT ename,
(CASE deptno
WHEN 10 THEN 'ACCOUNTING'
WHEN 20 THEN 'RESEARCH'
WHEN 30 THEN 'SALES'
WHEN 40 THEN 'OPERATIONS'
ELSE 'Unassigned'
END ) as Department
FROM emp;
8i中可以用decode
birdinrain 2003-09-29
  • 打赏
  • 举报
回复
在oracle中可以用decode
在sqlserver中可以iif
HeavenHe 2003-09-29
  • 打赏
  • 举报
回复
强啊!真长见识
txchen 2003-09-28
  • 打赏
  • 举报
回复
Oracle8i也可以使用case
至少存储过程里可以使用动态SQL语句执行带有case有语句。

select no,f1,f2,case when f1>f2 then true else false end f3 from table;
zhangxuanbird 2003-09-28
  • 打赏
  • 举报
回复
如果是ora8i使用decode语句,如果是9i,使用case语句,具体用法,你可以search一下贴子,有讲的。
cool777 2003-09-28
  • 打赏
  • 举报
回复
more_zou(小人物) 牛!!!
beckhambobo 2003-07-19
  • 打赏
  • 举报
回复
select no,f1,f2,decode(sign(f1-f2),1,true,-1,false,null) f3 from table
more_zou 2003-07-19
  • 打赏
  • 举报
回复
select no,f1,f2,case when f1>f2 then 'true' else 'false' end f3 from table1

dotnba 2003-07-19
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1507/1507392.xml?temp=.7941553
dotnba 2003-07-19
  • 打赏
  • 举报
回复
8.1.7中也可以使用case when...then ..else
  • 打赏
  • 举报
回复
case when...then ..else 在9i中才可以用
8i只能select no,f1,f2,decode(sign(f1-f2),1,true,false)f3 from table
york_lin 2003-04-15
  • 打赏
  • 举报
回复
谁能否 使用case when...then ..else 语句写出如上的sql语句
谢了 再加分!
jiezhi 2003-04-15
  • 打赏
  • 举报
回复
select no,f1,f2,decode(sign(f1-f2),1,true,false)f3 from table
jiezhi 2003-04-15
  • 打赏
  • 举报
回复
use decode and sign can do this.
---------------------
or use case:
case when .... then ... else ...

17,378

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧