Qlikview Substring和charindex相当于在 - 字符后显示值

时间:2015-05-19 14:32:09

标签: qlikview qliksense

我有一个具有值

的字段
field
good - examplea
good - exampleb
bad - examplep
ugly - examplet
ugly - exampley

我只希望在-字符后显示值。

我的示例输出是

field
examplea
exampleb
examplep
examplet
exampley

在SQL中它只是

SUBSTRING('ugly - exampley',CHARINDEX('- ', 'ugly - exampley', 1)+2,250)

SUBSTRING(field,CHARINDEX('- ', field, 1)+2,250)

Qlikview中的equivelant是什么

1 个答案:

答案 0 :(得分:5)

您可以使用if FOO...endif(使用mid)或index,如下所示:

中&索引

相当于你的陈述:

subfield

此处,mid(field, index(field,'- ', 1) + 2, 250) 相当于midSUBSTRING相当于index。但是,在QlikView中,CHARINDEX的第三个参数(要返回的字符数)是可选的,因此您可以改为使用

mid

将在mid(field, index(field,'- ', 1) + 2) 之后返回字段值的剩余部分。

<强>子域

-允许您使用另一个字符串分隔输入字符串,然后返回特定的分隔子字符串。在你的情况下,下面会做的伎俩:

Subfield

例如,对于字符串subfield(field, ' - ' , 2) ,这会通过查找分隔符good - examplea将其分解。这会产生两个字符串-good。最后一个参数examplea告诉2返回subfield(而不是examplea,这可以通过使用good作为第三个参数获得。)

在您的情况下,子字段的好处是您不需要指定要返回的字符数,因为子字段会将所有字符都返回到字符串的末尾。