Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 雪花被订单压平_Sql_Json_Snowflake Cloud Data Platform_Flatten - Fatal编程技术网

Sql 雪花被订单压平

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

我有一个工作查询,它将嵌套的JSON对象展平成数据行。但是,我想做的是保留嵌套在多个层中的一个对象数组的原始顺序

我曾尝试将
行编号
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"