在大查询中提取特殊字符后的短语



请参阅以下示例
之一
Start -> vendor-i (06/06/2017 09:07:18 PM) -> vendor-p (06/08/2017 04:44:47 PM) -> vendor-p (06/12/2017 11:32:33 AM) -> vendor-p (06/13/2017 04:49:47 PM)从上述阶段,我需要将供应商 i 提取为新变量,然后将供应商 p 提取为另一个新变量。
在某些情况下,我只有一个供应商名称。

我构建的代码是:
regexp_extract(GROUP_NAMES,r'([a-z._]*).') as integrations, regexp_extract(GROUP_NAMES,r([vendor_que]) as vendor_que

请建议我们如何实现这一点,因为供应商名称可以出现在任何地方,所以我们也不能定义长度。

由于你想要所有的名称,你可以使用 REGEXP_EXTRACT_ALL 来获取它们的数组。例如

#standardSQL
SELECT REGEXP_EXTRACT_ALL(GROUP_NAMES, r'-> ([^ ]+)')
FROM (
  SELECT 'Start -> vendor-i (06/06/2017 09:07:18 PM) -> vendor-p (06/08/2017 04:44:47 PM) -> vendor-p (06/12/2017 11:32:33 AM) -> vendor-p (06/13/2017 04:49:47 PM)' AS GROUP_NAMES
);

输出是数组["vendor-i", "vendor-p", "vendor-p", "vendor-p"]

最新更新