我遇到一个问题,试图弄清楚如何根据一个字符串中多次出现的字符将一个字符串解析为一个子字符串。对于这种情况,我试图使所有内容都位于最后一个'/'的右边。
示例:
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的功能不正确,实现此目标的最佳方法是什么?
谢谢
答案 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