sql - 如何将数组字符串列展平为雪花中的行?
问题描述
我试过使用雪花的扁平化,但它不起作用,所以我问。
示例数据
- 数组字符串类型 -> varchar
ID | 数组字符串 |
---|---|
1 | [10001,100000][10003,100000000][10004,10000][10006,100] |
我想
ID | 数组字符串 |
---|---|
1 | [10001,100000] |
1 | [10003,100000000] |
1 | ...... |
解决方案
SELECT
id,
'[' || c.value::string AS "array string"
FROM data d,
LATERAL FLATTEN(input=>split(d."array string", '[')) c;
应该可以工作,因为您正在拆分开放数组令牌,因此需要将其放回输出中。
推荐阅读
- sql - 想在一个查询中选择以下提及的详细信息
- java - INSERT .. SELECT 在 MySQL 中使用 JOOQ 的一些默认值
- ruby-on-rails - 如果 Gemfile.lock 在我的 .dockerignore 中,是否可以复制它?
- c# - C# FTP 挂在大文件上
- python - 圆周函数的简单pytest?
- scala - 将 Seq[Future[Boolean]] 更改为 Future[Seq[Boolean]]
- r - 如何重现使用插入符号构建的模型(更新)
- reactjs - 如何从问题 id 获取 github 问题 url?
- python - 无法使用 Keras 重现结果
- django - Django:使用多个嵌套数组过滤 JSONField