Oracle Netsuite保存的搜索-类拆分类似于文本到列



我意识到这是另一个有类似问题的线程:Netsuite:保存的搜索功能很像";文本到列";在Excel中但答案只拉了第一个班,没有一个子班。

如果您想将所有的类拆分为列,该怎么办?

"类";可能有很多级别Main:Sub1:Sub2:Sub3

可以有任意数量的子类。

我假设我可以创建6个(或更多(不同的列,每个列产生各自的主和子

第1列第2列第3列等。主要Sub1 Sub2等

这似乎是一个我找不到答案的普遍愿望。谢谢

您可以使用REGEXP_SUBSTR提取相应列的字符串部分。

方法1

主要类别(第一列(

TRIM(REGEXP_SUBSTR({class}, '^[^:]+'))

子类1(第二列(

TRIM(REGEXP_SUBSTR({class}, '^[^:]+:([^:]+)',1,1,'i',1))

子类2(第三列(

TRIM(REGEXP_SUBSTR({class}, '^[^:]+:[^:]+:([^:]+)',1,1,'i',1))

在正则表达式字符串的第一个"^"之后立即使用额外的[^:]+:组来扩展此模式,以添加额外的列。

方法2

主要类别(第一列(

TRIM(REGEXP_SUBSTR({class}, '^([^:]*):*([^:]*):*([^:]*):*([^:]*):*([^:]*):*([^:]*)',1,1,'i',1))

子类1(第二列(

TRIM(REGEXP_SUBSTR({class}, '^([^:]*):*([^:]*):*([^:]*):*([^:]*):*([^:]*):*([^:]*)',1,1,'i',2))

子类2(第三列(

TRIM(REGEXP_SUBSTR({class}, '^([^:]*):*([^:]*):*([^:]*):*([^:]*):*([^:]*):*([^:]*)',1,1,'i',3))

通过简单地更改最后一个参数的值,将其扩展到其他列,最多可以更改regex字符串中的捕获组数量——在所示的示例中,这最多可以工作6列。对于超过6列的列,您还必须向正则表达式字符串中添加额外的([^:]*):*组。

最新更新