选择字符串值之前和之后的数字-Presto SQL



我正在尝试从一个列创建2个新列。

我的数据看起来像这样:

userid:5438888,locationid:84646646478,property:g

我想为userid制作一个新列,并为locationid制作一个新列。还有更多的行,userid S和locationid S并不总是在整个数据集中相同的长度。

我假设有一种方法可以在:之后和,之前拆分文本,但是我不确定在字符串内两次它将如何工作。我不在乎字符串的属性部分。仅useridlocationid

您应该能够使用split_to_map()函数来完成此操作:

WITH data(attribution_site_id) AS (
    VALUES 'userid:5438888,locationid:84646646478,property:g'
),
t AS (
    SELECT split_to_map(attribution_site_id, ',',':') map
    FROM data
)
SELECT element_at(map, 'userid') as userid,
       element_at(map, 'locationid') as locationid
FROM t

产生:

 userid  | locationid
---------+-------------
 5438888 | 84646646478

相关内容

  • 没有找到相关文章

最新更新