Sql 根据值的数量将行转换为逗号分隔的值

Sql 根据值的数量将行转换为逗号分隔的值,sql,snowflake-cloud-data-platform,Sql,Snowflake Cloud Data Platform,因为列表值的长度有限制 我需要将这些行转换为一个最多2400行的值列表,其余的转换为下一个值列表 with data as ( select row_number()over(order by seq8()) as rn from table(generator(rowcount=>10000)) ) select listagg(rn, ',') as list from data; 这在SQL中可能吗 下面的查询将所有行转换为一个列表。如果值列表的长度超过2400个值

因为列表值的长度有限制

我需要将这些行转换为一个最多2400行的值列表,其余的转换为下一个值列表

with data as (
    select row_number()over(order by seq8()) as rn
    from table(generator(rowcount=>10000))
)
select listagg(rn, ',') as list
from data;
这在SQL中可能吗

下面的查询将所有行转换为一个列表。如果值列表的长度超过2400个值,则API不接受

       select listagg(id, ',')  as id_list from table;
范例

如果一个表有30行,那么前10行应该进入一个值列表,第二个10行应该进入第二个值列表,其余的值应该进入最后一个值列表

with data as (
    select row_number()over(order by seq8()) as rn
    from table(generator(rowcount=>10000))
)
select listagg(rn, ',') as list
from data;
表示没有限制。。但这并不是很有用

所以要做你想做的事

with data as (
    select row_number()over(order by seq8()) as rn
    from table(generator(rowcount=>10000))
)
select listagg(rn, ',') within group (order by rn) as list
from data
group by floor(rn/2400)
order by 1;
给您五行(截断由我完成,只是为了显示数据是如何按照您的要求进行分区的)


那么,您是在问“是否有限制”还是“如何将每个分区划分为最多N行的列表”?非常感谢。。我喜欢这个