POSTGRESQL:连接列
POSTGRESQL: Join columns
我有一个 POSTGRESQL 版本 12.5 数据库,其中有一个 table,其中包含三列:c_id
、columna
和 columnb
。三列可以有不同的值。
我需要像这样将它们的值连接到一个对象中:
这是示例数据
我有一个 table,它有 3 个相同类型的列
c_id columna columnb
1 a b
2 c d
3 x y
我需要 运行 一个将像这样连接列 columna
和 columnb
的查询:
c_id merge_column
1 {"columna":a, "columnb": "b"}
2 {"columna":d, "columnb": "d"}
3 {"columna":x, "columnb": "y"}
有什么想法吗?
提前致谢
您可以将整行转换为 JSON,删除 c_id
键:
select t.c_id, to_jsonb(t) - 'c_id' as merge_column
from the_table t
如果列数比您显示的多,而您只想得到其中的两个,使用 jsonb_build_object()
可能更容易:
select t.c_id,
jsonb_build_object('columna', t.columna, 'columnb', t.columnb) as merge_column
from the_table t
我有一个 POSTGRESQL 版本 12.5 数据库,其中有一个 table,其中包含三列:c_id
、columna
和 columnb
。三列可以有不同的值。
我需要像这样将它们的值连接到一个对象中:
这是示例数据 我有一个 table,它有 3 个相同类型的列
c_id columna columnb
1 a b
2 c d
3 x y
我需要 运行 一个将像这样连接列 columna
和 columnb
的查询:
c_id merge_column
1 {"columna":a, "columnb": "b"}
2 {"columna":d, "columnb": "d"}
3 {"columna":x, "columnb": "y"}
有什么想法吗?
提前致谢
您可以将整行转换为 JSON,删除 c_id
键:
select t.c_id, to_jsonb(t) - 'c_id' as merge_column
from the_table t
如果列数比您显示的多,而您只想得到其中的两个,使用 jsonb_build_object()
可能更容易:
select t.c_id,
jsonb_build_object('columna', t.columna, 'columnb', t.columnb) as merge_column
from the_table t