oralce中decode用法和'%'的问题

0
业务系统中有报表统计,底层sql如下:
这里用decode条件判断,汇总一个值,但是里面用到的这个'%',实在看不懂,columnname=‘%’? 当'%'='5',才取对应值?
这个怎么理解呢?我需要在sqlserver中进行统计,请高手指点迷津!     
  sum(decode('%', '5', r.pub_cost * 0.7, decode(r.trans_type, 2, -1, 1) * case
                             when dict.mark < 1 then
                              dict.mark * r.tot_cost
                             else
                              case
                                when r.info60 = '2' then
                                 dict.mark / 2
                                else
                                 dict.mark * 1
                              end
                           end)) as de,
已邀请:
0

老头子 - 专注是唯一的捷径 2016-09-12 回答

你这百分号应该是穿的参吧?
0

li052468 2016-09-07 回答

你的这段sql是写死的还是动态生成的,如果是动态生成的,‘%’的这个位置是不是传进去的参数?
0

蓝心 2016-09-23 回答

decode里面 % 就表示%自己,不能代表任意字符串,  只有在where 条件后面,例如 : where name like '张%' 这才表示任意多个字符,也就是说,查出所有姓张的人,不管后面名字是几个字都行,但在decode里面没有这个功能, %就只能表示%,不能代表其它字符。

要回复问题请先登录注册