
但是当我有一个返回的查询时
T1,V1t1,V2t1,V3t1T2,V1t2,v2t2,v3t2-- -- -- --
我希望格式化数据
T1,name(V1),V1t1T1,name(V2),V2t1T1,name(V3),V1t2T2,V2t2T2,V3t2
我知道我可以通过为每个值v1,v2和v3选择联合来做到这一点,
但是我对速度感兴趣,并希望避免发出3个查询,我可以在其中获取数据(尽管是wroung格式)…或者在实际情况下,不要发出20-30个查询,可以在一.
所以问题是,除了转储到临时表并将后续选择运行到表的相关列并将它们组合在一起之外,还有一种方法可以做到这一点.
这可以通过自定义构建的postgresql函数实现吗?
提前致谢
解决方法 您可以使用以下查询的变体实现所需的功能.CREATE table data( sampleTime timestamptz,value1 numeric,value2 numeric,value3 numeric);INSERT INTO data(sampleTime,value1,value2,value3) values(Now(),1,2,3);INSERT INTO data(sampleTime,4,5,6);SELECT data.sampleTime,CASE WHEN generate_serIEs = 1 THEN 'value1' WHEN generate_serIEs = 2 THEN 'value2' ELSE 'value3' END AS key,CASE WHEN generate_serIEs = 1 THEN value1 WHEN generate_serIEs = 2 then value2 ELSE value3 END AS valueFROM data,generate_serIEs(1,3)ORDER BY data.sampleTime,generate_serIEs总结
以上是内存溢出为你收集整理的database – 在postgresql中将多列表转换为键名称值元组表全部内容,希望文章能够帮你解决database – 在postgresql中将多列表转换为键名称值元组表所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)