Sql Postgres将列名和值作为给定ID的行获取
我有一张这样的桌子Sql Postgres将列名和值作为给定ID的行获取,sql,postgresql,Sql,Postgresql,我有一张这样的桌子 CREATE TABLE measurement ( city_id int not null PRIMARY KEY, logdate date not null, peaktemp int, unitsales int ) select * from measurement where city_id ='1'; Name |Value ---------|---------- city_id |1 logdate |2006-02-02 peak
CREATE TABLE measurement (
city_id int not null PRIMARY KEY,
logdate date not null,
peaktemp int,
unitsales int
)
select * from measurement where city_id ='1';
Name |Value
---------|----------
city_id |1
logdate |2006-02-02
peaktemp |1
unitsales|1
我需要像这样获取给定ID的值
CREATE TABLE measurement (
city_id int not null PRIMARY KEY,
logdate date not null,
peaktemp int,
unitsales int
)
select * from measurement where city_id ='1';
Name |Value
---------|----------
city_id |1
logdate |2006-02-02
peaktemp |1
unitsales|1
有什么简单的方法可以实现这一点。您可以将行转换为json,然后使用json\u根据需要转换数据:
SELECT
kv.key
, kv.value
FROM measurement
, json_each(row_to_json(measurement.*)) kv
WHERE city_id = 1
你试过枢轴吗?@Atk我没试过。meI可以在sql server中帮助您,但是如果您想在postgresql中使用它,那么我将无法提供帮助。在
psql
中,您只需使用\x
即可。谢谢。我不是在寻找json表示。我正在寻找类似数组等的原样表示。这可以修改吗?@Patan:你有没有运行过那条语句?它不输出JSON。“这正是你想要的。”一匹没有名字的马我跑了。对于数组列,它的表示形式为[“a”],其中在db中实际上是{“a”}耸肩。因此数组的显示略有不同。那又怎么样?这只是为了便于阅读而显示数据的另一种方式,你为什么要在意呢?@a_horse_和a_no_name稍后我计划使用key作为列名和值来更新同一个表。我计划动态实现所有这些。