Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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
Sql BigQuery无法从右侧获取基于字符的子字符串_Sql_Google Cloud Platform_Google Bigquery_Cloud - Fatal编程技术网

Sql BigQuery无法从右侧获取基于字符的子字符串

Sql BigQuery无法从右侧获取基于字符的子字符串,sql,google-cloud-platform,google-bigquery,cloud,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))

我在试图找出如何根据字符串中多次出现的字符将字符串解析为子字符串时遇到了一个问题。在这个例子中,我试图把所有的东西都放到最后一个“/”的右边

例如:

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没有正确的功能,那么实现这一目标的最佳方式是什么


感谢下面是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