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