Sql Postgres-如何选择jsonb键值对作为列?
在Sql Postgres-如何选择jsonb键值对作为列?,sql,postgresql,postgres-10,Sql,Postgresql,Postgres 10,在test表中有这样的记录(metrics列为jsonb类型): 我想选择指标作为附加列,例如(伪代码): 要获得如下结果: id name metric1 metric2 1 machine1 50 100 2 machine2 31 46 这可能吗?使用->操作符: select id, name, metrics ->> 'metric1' as metric1, metrics -
test
表中有这样的记录(metrics
列为jsonb类型):
我想选择指标作为附加列,例如(伪代码):
要获得如下结果:
id name metric1 metric2
1 machine1 50 100
2 machine2 31 46
这可能吗?使用
->
操作符:
select id, name,
metrics ->> 'metric1' as metric1,
metrics ->> 'metric2' as metric2
from test;
使用
->
操作符:
select id, name,
metrics ->> 'metric1' as metric1,
metrics ->> 'metric2' as metric2
from test;
您只需使用
->
请注意,现在度量
列的类型为text
。如果要将它们设置为整数类型
,则需要另外强制转换它们:
(metrics ->> 'metric1')::int
您只需使用
->
请注意,现在度量
列的类型为text
。如果要将它们设置为整数类型
,则需要另外强制转换它们:
(metrics ->> 'metric1')::int
好的,很好,谢谢。但我有50个指标,希望在Java客户机中动态映射它们。所以我更喜欢通过通配符或其他方式来选择它们。那可能吗?@米尔卡马尔:不,那不可能。但是为什么不简单地将JSON发送到Java应用程序并在那里进行处理呢?是的,我没有想到。ObjectMapper应该做到这一点。谢谢:)好的,很好,谢谢。但我有50个指标,希望在Java客户机中动态映射它们。所以我更喜欢通过通配符或其他方式来选择它们。那可能吗?@米尔卡马尔:不,那不可能。但是为什么不简单地将JSON发送到Java应用程序并在那里进行处理呢?是的,我没有想到。ObjectMapper应该做到这一点。谢谢:)好的,很好,谢谢。但我有50个指标,希望在Java客户机中动态映射它们。所以我更喜欢通过通配符或其他方式来选择它们。这可能吗?这不可能。输出列必须是预定义的。因此,如果需要,您需要在后端处理JSON。好的,很好,谢谢。但我有50个指标,希望在Java客户机中动态映射它们。所以我更喜欢通过通配符或其他方式来选择它们。这可能吗?这不可能。输出列必须是预定义的。因此,如果需要,您需要在后端处理JSON。
(metrics ->> 'metric1')::int