因为报表的关系
要统计金额范围
比如(10=>金额>0,30=>金额>10)
我打算用函数做
DECODE(value, if1, then1,  if2,then2, if3,then3,  . . .  else )
这个value可以是 a+b+c
但是这个if1能不能为 10<a<0
这个试了 报错缺少右括号
这个if1的值能不能取一个表达式?
如果decode不能这个用 那么有什么好一点的办法来处理这个问题~~
谢谢帮忙~

解决方案 »

  1.   

    case when then  end
      

  2.   

    直接用case when 啊
    可以用
    trunc(a/10),0代表<10
      

  3.   

    现在出来的报表格式是这样的
    地区     0-10元 10.01-30元  30.01-70元 70.01-100元 100元以上 1       102                 243case when 好像只能出成这样的
    0-10元      10
    10.01-30元   24
    30.01-70元
    70.01-100元
    100元以上是不是得多用几个case...
      

  4.   

    在来一次查询。再用decode。你把你的数据给出来吧结果也给出来。
      

  5.   

    应该是多几个when,而不是多几个case
      

  6.   

    如果价格段分类是固定几个的话,case when能解决,若价格段不固定,需要动态的sql
      

  7.   

    我把所有的都写成一段段的sql 最后select的 decode if1好像真的不能用=> <=虽然有点麻烦 不过执行速度还能接受~
    谢谢楼上各位了~