Sql 雪花被订单压平
我有一个工作查询,它将嵌套的JSON对象展平成数据行。但是,我想做的是保留嵌套在多个层中的一个对象数组的原始顺序 我曾尝试将Sql 雪花被订单压平,sql,json,snowflake-cloud-data-platform,flatten,Sql,Json,Snowflake Cloud Data Platform,Flatten,我有一个工作查询,它将嵌套的JSON对象展平成数据行。但是,我想做的是保留嵌套在多个层中的一个对象数组的原始顺序 我曾尝试将行编号与ORDER BY NULL和ORDER BY(SELECT NULL)一起使用,但两者似乎都没有保留顺序 关于如何实现这一点有什么想法吗?下面的例子。我选择屏蔽真实数据,但结构的重要部分是相同的。JSON格式的数据没有等级识别信息,但我在这里使用数字作为示例来显示奇怪的结果 原始结构(屏蔽): 示例查询(屏蔽): 示例输出: TITLE
行编号
与ORDER BY NULL
和ORDER BY(SELECT NULL)
一起使用,但两者似乎都没有保留顺序
关于如何实现这一点有什么想法吗?下面的例子。我选择屏蔽真实数据,但结构的重要部分是相同的。JSON格式的数据没有等级识别信息,但我在这里使用数字作为示例来显示奇怪的结果
原始结构(屏蔽):
示例查询(屏蔽):
示例输出:
TITLE RANK
"example title 3" 1
"example title 5" 2
"example title 2" 3
"example title 1" 4
"example title 4" 5
可以使用
索引
,它返回数组中元素的索引:
SELECT A.VALUE:"title"::VARCHAR AS "TITLE",
"list_flatten".index AS "RANK"
FROM DB.SCHEMA.TABLE as A,
lateral flatten(input=>A.JSON:topNode.childNode.list) "list_flatten"
这是巨大的!现在我在文档中看到了,但是没有真正好的示例(易于阅读)来展示索引值。谢谢@很高兴听到我能帮上忙。我会接受的,但你回答得这么快,我还得等;)
TITLE RANK
"example title 3" 1
"example title 5" 2
"example title 2" 3
"example title 1" 4
"example title 4" 5
SELECT A.VALUE:"title"::VARCHAR AS "TITLE",
"list_flatten".index AS "RANK"
FROM DB.SCHEMA.TABLE as A,
lateral flatten(input=>A.JSON:topNode.childNode.list) "list_flatten"