BigQuery无法根据正确的字符获取子字符串

时间:2019-03-14 19:17:39

标签: sql google-cloud-platform google-bigquery cloud

我遇到一个问题,试图弄清楚如何根据一个字符串中多次出现的字符将一个字符串解析为一个子字符串。对于这种情况,我试图使所有内容都位于最后一个'/'的右边。

示例:

Col          text_string
1            aaa/bbbb/ccccc
2            d/eeee/ff
3            gggg/hh/iiii

到目前为止,我有:

SELECT
SUBSTR(text_string,[*MY ISSUE*],LENGTH(text_string)) as solution
FROM mytable

要输出:

Col          solution
1            ccccc
2            ff
3            iiii

由于GCP的功能不正确,实现此目标的最佳方法是什么?

谢谢

1 个答案:

答案 0 :(得分:2)

以下是用于BigQuery标准SQL

#standardSQL
SELECT col, 
  ARRAY_REVERSE(SPLIT(text_string, '/'))[OFFSET(0)] solution
FROM `project.dataset.table`

您可以使用问题中的示例数据来进行测试,如上示例所示

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 1 col, 'aaa/bbbb/ccccc' text_string UNION ALL
  SELECT 2, 'd/eeee/ff' UNION ALL
  SELECT 3, 'gggg/hh/iiii' 
)
SELECT col, 
  ARRAY_REVERSE(SPLIT(text_string, '/'))[OFFSET(0)] solution
FROM `project.dataset.table`
-- ORDER BY col  

有结果

Row col solution     
1   1   ccccc    
2   2   ff   
3   3   iiii