当前位置: 代码迷 >> PB >> PB 计算列中使用case when的有关问题
  详细解决方案

PB 计算列中使用case when的有关问题

热度:78   发布时间:2016-04-29 10:04:56.0
PB 计算列中使用case when的问题?
帮忙分析下哪里有问题,
我想判断某列的第一个字符是否为数字,如果是数字就取所有的,如果不是的话就把该字符替换成0 (注:该列一个7个字符,第一个可能是字母,也可能是数字。)

case ( isNumber(left(column_name,1)) when true then right(column_name,7) else '0'+right(column_name,6) )




------解决方案--------------------
不用case,改用if吧,一样的效果:
if(isNumber(left(column_name,1)),right(column_name,7),'0'+right(column_name,6)) 

------解决方案--------------------
楼上的可以啦,学习一下,不过if里面那个right(column_name,7)可以直接写column_name吧,反正只有7个字符
------解决方案--------------------
是啊,必须用if,case的第1个参数必须是列名称,而不是条件:
If(IsNumber(Left(column_name, 1)), column_name, '0' + Mid(column_name, 2))
  相关解决方案