-
-
18516843105 数据达人Lv4
发表于2018-9-26 10:27
悬赏1
已解决
计算生成的SQL是: LIKE '4001' OR XXX LIKE '4101' OR XXX LIKE '4301%'
想要每个后面都有百分号,即like '4001%' OR LIKE '4101%' or LIKE '4301%'
6个回答
如果 xxx 与 @srkm参数的前四位相等,可以对xxx使用截取函数,取前四位后再进行计算 ,left(xxx,4) like @srkm
-
18516843105 数据达人Lv4
huxh 发表于 2018-9-26 10:40
如果 xxx 与 @srkm参数的前四位相等,可以对xxx使用截取函数,取前四位后再进行计算 ,left(xxx,4) like @s ...
不行,位数不确定
根据问题描述,@srkm 是 多选。@srkm是否是维表呢?
如果是关联维表,这种过滤就比较简单了,dim(XXXX)=@srkm 是可以做到这些过滤的。
如果无法用维表思路解决,我看你的@srkm的个数都相同,是否可以left(xxxx,4) =@srkm,直接就取前四位跟参数去匹配,而不是用like的形式
用数组写过滤条件试试:例如:<#=(@srkm.values).select(true,"DW_D05.C03 like '"+ @+"%'").join(" or ")#>