获取case when的值 在线等。。

izj 2012-11-20 10:49:26


select
case when &value >=1 then 1 else 0 end as a,
case when &value >=2 then a + 2 else 0 end as b,
case when &value >=3 then b + 3 else 0 end as c
from dual



如上中,我想在第二个case when 里面用到 a 的值。

各位高手。。不要观望阿。。回帖告诉我吧。。。急。
...全文
146 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2012-11-20
  • 打赏
  • 举报
回复
select 
   case when &value <=1 then 1 else 0 end as a, 
   case when &value <=2  AND &VALUE>1 then 3 WHEN &value <=1 THEN 2 else 0 end as b, 
   case when &value <=3  AND &VALUE>2 then 6 when &VALUE>1   then 5 WHEN &value <=1 THEN  4 ELSE 0 end as c
from dual
看一下是否为这样的效果
中国风 2012-11-20
  • 打赏
  • 举报
回复
&value 如果不存在小数如 1.5之类,加上是没有意义的 直接用case when &value >=2 then 3 else 0 end as b,
izj 2012-11-20
  • 打赏
  • 举报
回复
引用 4 楼 roy_88 的回复:
这样? SQL code? 12345 select case when &value >=1 then 1 else 0 end as a, case when &value >=2 then case when &value >=1 then 1 else 0 end + 2 else 0 end as b, case……
谢谢大侠阿。果然是高手 那如果有12个 case when 这得写多少阿。 有没有其他简单点儿的阿。。
izj 2012-11-20
  • 打赏
  • 举报
回复
引用 5 楼 roy_88 的回复:
楼主的条件是否搞错了 >=1--改为<= 大于等于 改为 小于等于
哈哈。。一时急。。确实是 <=
izj 2012-11-20
  • 打赏
  • 举报
回复
引用 2 楼 HJ_daxian 的回复:
&value >=1 &value >=2 &value >=3 看着是不是有矛盾?
value的值 赋3, 其实就是想让他累加成 1 + 2+ 3 。。
中国风 2012-11-20
  • 打赏
  • 举报
回复
楼主的条件是否搞错了 >=1--改为<= 大于等于 改为 小于等于
中国风 2012-11-20
  • 打赏
  • 举报
回复
这样?
select 
   case when &value >=1 then 1 else 0 end as a, 
   case when &value >=2 then case when &value >=1 then 1 else 0 end + 2 else 0 end as b, 
   case when &value >=3 then case when &value >=2 then case when &value >=1 then 1 else 0 end + 2 else 0 end + 3 else 0 end as c
from dual
中国风 2012-11-20
  • 打赏
  • 举报
回复
分层嵌套或合并
  • 打赏
  • 举报
回复
&value >=1 &value >=2 &value >=3 看着是不是有矛盾?
izj 2012-11-20
  • 打赏
  • 举报
回复
查过百度,没查到。。

17,140

社区成员

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

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