【发布时间】:2018-04-15 01:57:35
【问题描述】:
我有一张桌子:
Table_Name: price_list
---------------------------------------------------
| id | price_type_a | price_type_b | price_type_c |
---------------------------------------------------
| 1 | 1234 | 5678 | 9012 |
| 2 | 3456 | 7890 | 1234 |
| 3 | 5678 | 9012 | 3456 |
---------------------------------------------------
我需要在 Postgres 中进行选择查询,结果如下:
---------------------------
| id | price_type | price |
---------------------------
| 1 | type_a | 1234 |
| 1 | type_b | 5678 |
| 1 | type_c | 9012 |
| 2 | type_a | 3456 |
| 2 | type_b | 7890 |
| 2 | type_c | 1234 |
...
非常感谢任何有关类似示例链接的帮助。
【问题讨论】:
-
只是
select id,'a', a union select id,'b'b and so on?.. -
谢谢!效果很好.. 它是否适合大量数据?
-
没有什么比 ATM 更聪明的了 :)
-
没关系。我在想有没有办法通过枢轴或非枢轴来做到这一点?因为我在这个表中有大量的数据,所以枢轴会更优化,而不是有多个联合,对吧?
-
您必须查看
tablefunc,尤其是crosstab函数。
标签: sql database postgresql data-manipulation unpivot