我有一个具有值
的字段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是什么
答案 0 :(得分:5)
您可以使用if FOO...endif
(使用mid
)或index
,如下所示:
中&索引强>
相当于你的陈述:
subfield
此处,mid(field, index(field,'- ', 1) + 2, 250)
相当于mid
和SUBSTRING
相当于index
。但是,在QlikView中,CHARINDEX
的第三个参数(要返回的字符数)是可选的,因此您可以改为使用
mid
将在mid(field, index(field,'- ', 1) + 2)
之后返回字段值的剩余部分。
<强>子域强>
-
允许您使用另一个字符串分隔输入字符串,然后返回特定的分隔子字符串。在你的情况下,下面会做的伎俩:
Subfield
例如,对于字符串subfield(field, ' - ' , 2)
,这会通过查找分隔符good - examplea
将其分解。这会产生两个字符串-
和good
。最后一个参数examplea
告诉2
返回subfield
(而不是examplea
,这可以通过使用good
作为第三个参数获得。)
在您的情况下,子字段的好处是您不需要指定要返回的字符数,因为子字段会将所有字符都返回到字符串的末尾。