Nic*_*oso 0 mysql android google-bigquery
关于拆分BigQuery,MySQL列有很多问题,但是我找不到适合我的情况的问题。
我正在处理一个大型数据集(第三方),该数据集包含一个自由格式的位置字段,以对其进行标准化以适用于我的Android应用。当我运行a时,select我想用逗号分割列数据,只取最后一段,并将其修剪为空白。
到目前为止,我已经通过Googling文档提出了以下建议:
SELECT RTRIM(LOWER(SPLIT(location, ',')[OFFSET(-1)])) FROM `users` WHERE location <> ''
Run Code Online (Sandbox Code Playgroud)
但是-1,最后一个元素拆分的技巧不起作用(使用offset或ordinal)。我不能ARRAY_LENGTH与同一个内联数组一起使用,也不确定如何构造嵌套查询并知道该行的最后一列索引。
我可能是从错误的角度来解决这个问题,我现在使用Android和NoSQL,所以很长一段时间没有使用MySQL
如何正确构造此查询?
我想按逗号分隔列数据,仅取最后一段...
您可以使用以下方法(BigQuery标准SQL)
SELECT ARRAY_REVERSE(SPLIT(location))[SAFE_OFFSET(0)]
Run Code Online (Sandbox Code Playgroud)
下面是一个说明它的示例:
#standardSQL
WITH `project.dataset.table` AS (
SELECT '1,2,3,4,5' location UNION ALL
SELECT '6,7,8'
)
SELECT location, ARRAY_REVERSE(SPLIT(location))[SAFE_OFFSET(0)] last_segment
FROM `project.dataset.table`
Run Code Online (Sandbox Code Playgroud)
结果
Row location last_segment
1 1,2,3,4,5 5
2 6,7,8 8
Run Code Online (Sandbox Code Playgroud)
进行修整-您可以使用LTRIM(RTRIM())-如
SELECT LTRIM(RTRIM(ARRAY_REVERSE(SPLIT(location))[SAFE_OFFSET(0)]))
Run Code Online (Sandbox Code Playgroud)