Google bigquery 使用多个分隔符拆分BigQuery
我想做一个左分割URI当一个角色像?或出现Google bigquery 使用多个分隔符拆分BigQuery,google-bigquery,Google Bigquery,我想做一个左分割URI当一个角色像?或出现 SELECT CASE WHEN URI LIKE '%?%' THEN FIRST(SPLIT(URI, "?")) WHEN URI LIKE '%#%' THEN FIRST(SPLIT(URI, "#")) END WITHIN RECORD AS URI_FILTER FROM (SELECT "/A/A1/AA2/205.html#jfsalf" AS URI) 输出必须是:/A/A1/AA2/205.html 要测试的另一个URI:
SELECT
CASE
WHEN URI LIKE '%?%' THEN FIRST(SPLIT(URI, "?"))
WHEN URI LIKE '%#%' THEN FIRST(SPLIT(URI, "#"))
END WITHIN RECORD AS URI_FILTER
FROM (SELECT "/A/A1/AA2/205.html#jfsalf" AS URI)
输出必须是:/A/A1/AA2/205.html
要测试的另一个URI:
/A/A1/AA2/205.html?pRef=209888
错误:在没有聚合函数的情况下应用了作用域我认为更适合于此
选择
URI,REGEXP_EXTRACTURI,r'.*?[?]'
从…起
选择/A/A1/AA2/205.htmljfsalf作为URI,
选择/A/A1/AA2/205.html?pRef=209888作为URI
我认为这更合适
选择
URI,REGEXP_EXTRACTURI,r'.*?[?]'
从…起
选择/A/A1/AA2/205.htmljfsalf作为URI,
选择/A/A1/AA2/205.html?pRef=209888作为URI
使用REGEXP\u EXTRACT。如果URI可能没有or?,则可以使用正则表达式来解释这种情况:
#standardSQL
WITH T AS (
SELECT '/A/A1/AA2/205.html#jfsalf' AS path UNION ALL
SELECT '/A/A1/AA2/205.html?pRef=209888' AS path UNION ALL
SELECT '/A/A1/AA2/205.html' AS path
)
SELECT
REGEXP_EXTRACT(path, r'([^#?]+)') AS left_path
FROM T;
使用REGEXP\u EXTRACT。如果URI可能没有or?,则可以使用正则表达式来解释这种情况:
#standardSQL
WITH T AS (
SELECT '/A/A1/AA2/205.html#jfsalf' AS path UNION ALL
SELECT '/A/A1/AA2/205.html?pRef=209888' AS path UNION ALL
SELECT '/A/A1/AA2/205.html' AS path
)
SELECT
REGEXP_EXTRACT(path, r'([^#?]+)') AS left_path
FROM T;
SPLIT函数以数组格式的嵌套单元格返回数据,这在某些方面非常有用 如果需要此格式,另一种方法是使用替换操作将各种键、%等转换为可在拆分中使用的单个键 在下面的代码中,我们转换为?然后就分手了
拆分替换URI SPLIT函数以数组格式的嵌套单元返回数据,这在某些方面非常有用 如果需要此格式,另一种方法是使用替换操作将各种键、%等转换为可在拆分中使用的单个键 在下面的代码中,我们转换为?然后就分手了 拆分替换URI