gpt4 book ai didi

sql - Postgres : convert a list of "name=value" values into a table

转载 作者:行者123 更新时间:2023-11-29 11:40:33 24 4
gpt4 key购买 nike

转换这个字符串:

n1=10;n2=50;n3=60;n4=20

使用这样的东西(在 Postgres 9.x 中):

select * 
from (some_engine_to_convert_this('n1=10;n2=50;n3=60;n4=20')) t

得到这样的结果:

Name Value
v1 10
v2 50
v3 60
v4 20

PS:我无法创建任何函数,所以我只需要使用 Postgres 内置函数。

提前致谢。

最佳答案

select split_part(nv, '=', 1) as name,
split_part(nv, '=', 2) as value
from (
select unnest(string_to_array('n1=10;n2=50;n3=60;n4=20',';'))
) as t (nv);

string_to_array 首先创建一个键/值对数组。 unnest 将其转换为行,然后使用 split_part 从结果中提取键/值元素。

或者 unneststring_to_array 的组合可以使用 regexp_split_to_table 组合,但正则表达式函数通常较慢。不确定哪一个在这里会更有效率。

SQLFiddle 示例:http://sqlfiddle.com/#!15/d41d8/2991

关于sql - Postgres : convert a list of "name=value" values into a table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25334841/

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