Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google bigquery 从字符串中提取子字符串_Google Bigquery - Fatal编程技术网

Google bigquery 从字符串中提取子字符串

Google bigquery 从字符串中提取子字符串,google-bigquery,Google Bigquery,在google bigquery中,我需要提取域**和**之间的字符串,如下面的示例所示 该字符串位于“站点数据”列下 有人能帮我吗?10倍 见下面的例子 标准SQL 以你的桌子为例 选择“756-1”,标记类型**未映射,域**www.sport.com,用户直接到达**False”作为站点数据 选择 REGEXP\u EXTRACTSite\u数据,r'domain\*\*.\*\*'作为x, 现场数据 从你的桌子上 见下面的例子 标准SQL 以你的桌子为例 选择“756-1”,标记类型**

在google bigquery中,我需要提取域**和**之间的字符串,如下面的示例所示 该字符串位于“站点数据”列下

有人能帮我吗?10倍

见下面的例子

标准SQL 以你的桌子为例 选择“756-1”,标记类型**未映射,域**www.sport.com,用户直接到达**False”作为站点数据 选择 REGEXP\u EXTRACTSite\u数据,r'domain\*\*.\*\*'作为x, 现场数据 从你的桌子上 见下面的例子

标准SQL 以你的桌子为例 选择“756-1”,标记类型**未映射,域**www.sport.com,用户直接到达**False”作为站点数据 选择 REGEXP\u EXTRACTSite\u数据,r'domain\*\*.\*\*'作为x, 现场数据 从你的桌子上
所有的字符串都有这种格式吗?这里有两个不同的选项,假设您总是需要**分隔符之后的第三个字符串

1使用拆分,例如:

2使用REGEXP_提取,例如:

更进一步,如果要拆分域和到达类型,可以再次使用拆分:


所有的字符串都有这种格式吗?这里有两个不同的选项,假设您总是需要**分隔符之后的第三个字符串

1使用拆分,例如:

2使用REGEXP_提取,例如:

更进一步,如果要拆分域和到达类型,可以再次使用拆分:

#standardSQL
WITH SampleData AS (
  SELECT '756-1__67648582789116,tagtype**unmapped,domain**www.sport.com,userarriveddirectly**False' AS site_data
)
SELECT SPLIT(site_data, '**')[OFFSET(2)] AS visit_type
FROM SampleData;
#standardSQL
WITH SampleData AS (
  SELECT '756-1__67648582789116,tagtype**unmapped,domain**www.sport.com,userarriveddirectly**False' AS site_data
)
SELECT REGEXP_EXTRACT(site_data, r'[^\*]+\*\*[^\*]+\*\*([^\*]+)') AS visit_type
FROM SampleData;
#standardSQL
WITH SampleData AS (
  SELECT '756-1__67648582789116,tagtype**unmapped,domain**www.sport.com,userarriveddirectly**False' AS site_data
)
SELECT
  SPLIT(visit_type)[OFFSET(0)] AS domain,
  SPLIT(visit_type)[OFFSET(1)] AS arrival_type
FROM (
  SELECT SPLIT(site_data, '**')[OFFSET(2)] AS visit_type
  FROM SampleData
);