gpt4 book ai didi

PostgreSQL 计算拆分后的前缀组合

转载 作者:行者123 更新时间:2023-11-29 14:13:17 25 4
gpt4 key购买 nike

我确实有一个字符串作为条目,格式为 foo:bar:something:221。我正在寻找一种方法来生成包含此字符串所有前缀的表,例如:

  • foo
  • foo:bar
  • foo:bar:something
  • foo:bar:something:221

我编写了以下查询来拆分字符串,但无法弄清楚从那里去哪里:

select unnest(string_to_array('foo:bar:something:221', ':'));

最佳答案

一个选项是模拟所有元素的循环,然后从每个元素索引的输入中获取子数组:

with data(input) as (
values (string_to_array('foo:bar:something:221', ':'))
)
select array_to_string(input[1:g.idx], ':')
from data
cross join generate_series(1, cardinality(input)) as g(idx);

generate_series(1, cardinality(input)) 生成与数组元素一样多的行。表达式 input[1:g.idx] 接受从第一个到“idx”的“子数组”。由于输出是一个数组,我使用 array_to_string 重新创建带有 :

的表示

关于PostgreSQL 计算拆分后的前缀组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58276328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com