Oracle NetSuite将搜索类拆分类似文本保存到列文本、类似、Oracle、NetSuite

2023-09-04 01:41:05 作者:我记得我帅过

我意识到这是另一个带有类似问题的帖子: Netsuite: Saved Search Function much like "Text To Columns" in Excel 但答案只拉出了第一个类,没有一个子类。

如果希望将所有类拆分为多个列,该怎么办?

类可以有多个级别到 Main:Sub1:Sub2:Sub3

DBeaver连接Oracle NetSuite数据库

可以有任意数量的子类。

我假设我可以创建6个(或更多)不同的列,每个列分别产生Main和Sub-

第1列、第2列、第3列等。 主子1、子2等

这似乎是我找不到答案的共同愿望。 谢谢!

推荐答案

可以使用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))

只需更改最后一个参数的值,直到正则表达式字符串中的捕获组数量,即可将其扩展到其他列-在所示的示例中,最多可使用6列。对于超过6列,您还必须向正则表达式字符串添加额外的([^:]*):*组。