Qlik Sense脚本STARTS WITH功能不生效,如何匹配指定前缀的文本?
Qlik Sense 数据加载脚本中不等于判断符<>不支持直接拼接通配符*做前缀匹配,可通过以下两种方案实现需求:
方案1:使用Left()函数做固定前缀匹配
该方案性能最优,适合前缀长度固定的场景:
首先计算目标前缀No control needed的字符长度为17,提取text字段前17位和前缀做对比即可。
修改后的完整脚本如下:
LOAD Pippo, if(color = 'green', 'ok', if(color = 'yellow' and Left(text, 17) <> 'No control needed', 'check', if(color = 'red' and text <> 'Control now', 'check', 'ok'))) as Pippo1 // 此处补充你的数据源加载语句,比如FROM/RESIDENT等
注意:原脚本中LOAD Pippo后遗漏了逗号,需补充否则会触发语法错误。
方案2:使用WildMatch()函数做通配符匹配
该方案灵活性更高,适合前缀长度不固定、需要更复杂通配规则的场景:WildMatch()函数返回匹配到通配规则的位置,返回0代表未匹配,对应判断逻辑如下:
if(color = 'yellow' and WildMatch(text, 'No control needed*') = 0, 'check',
如果需要忽略大小写匹配,可以替换为WildMatch(Lower(text), 'no control needed*') = 0。
内容的提问来源于stack exchange,提问作者Mr Light
相关产品推荐
相关产品推荐

