1

我有一个具有值的字段

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 中的等价物是什么

4

1 回答 1

5

您可以使用mid(with index) 或subfield如下所示:

中盘和指数

相当于您的陈述将是:

mid(field, index(field,'- ', 1) + 2, 250) 

这里,mid是 的等价物SUBSTRING和的index等价物CHARINDEX。但是,在 QlikView 中,mid的第三个参数(要返回的字符数)是可选的,因此您可以改用

mid(field, index(field,'- ', 1) + 2) 

这将返回-.

子字段

Subfield允许您用另一个字符串分隔输入字符串,然后返回特定的分隔子字符串。在您的情况下,以下内容可以解决问题:

subfield(field, ' - ' , 2)

例如,对于 string good - examplea,这会通过查找 delimiter 来分解它-。这会产生两个字符串,goodexamplea。最后一个参数 ,2告诉subfield返回examplea(而不是good可以通过1用作第三个参数来获得)。

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

于 2015-05-19T15:20:14.470 回答