PL\SQL的问题,case when怎么用?

antivence 2004-04-29 10:40:11
在8.16以后版本好像都支持case when的用法,比如:SELECT CASE WHEN YSPZ_JZFX='J' THEN YSPZ_JE ELSE 0 END FROM ZKYSPZ;
但是到了8.15的版本上,这条语句就不好使的。

高手们帮帮忙,看看怎么才能通过呀?8.15的怎么使用?
...全文
2002 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bzszp 2004-04-29
  • 打赏
  • 举报
回复
select decode(sign(yspz_pzrq-11111111),1,1,0) from tbname;
dinya2004 2004-04-29
  • 打赏
  • 举报
回复
楼主注意:
case是9i以后的版本才支持的/
8 版本就要用decode 等其他函数来实现了,
antivence 2004-04-29
  • 打赏
  • 举报
回复
那如果是比较大小的怎么办,如case when YSPZ_PZRQ > '11111111' then 1 else 0 end
bzszp 2004-04-29
  • 打赏
  • 举报
回复
8i不行,9i可以
9i增加的东西还是挺多的
ern 2004-04-29
  • 打赏
  • 举报
回复
case when在oracle里可以的,请楼上看看最新的文档
Lulq21cn 2004-04-29
  • 打赏
  • 举报
回复
case when是T sql的语法,pl sql 是没有这个语法的
lonking 2004-04-29
  • 打赏
  • 举报
回复
本人在中石化资金项目中有个姓刘的同事遇到过此问题,解决如下:
1、select decode(列名或变量,'01',1,0) from t_b;

2、select decode(列名或变量,'01', '30000',
'02', '90000',
'03', '80000' ) from t_b;

给分ba !!
ern 2004-04-29
  • 打赏
  • 举报
回复
9i开始支持case when的吧,不记得了
用楼上的decode可以解决
bzszp 2004-04-29
  • 打赏
  • 举报
回复
select decode(upper(yspz_jzfx),'J',yspz_je,0) from zkyspz;

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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