首页 > 解决方案 > 将表(列)值转换为独立行

问题描述

我有一个主键 as(state+city)和 other的表columns (product1, product2, product3, product4)。我正在尝试创建一个新表,其中每一行将对应于(state+city)& (一个)产品 + 一些 static_value 列。如何在 PostgreSQL 查询中执行此操作?

最好查看我正在查看的输入和输出数据的示例。我在这个论坛上查看了在 MySQL 或 SQL Server 中将行转换为列的各种示例,但它们似乎对我没有帮助。

示例数据表(“输入表”和“所需输出”选项卡)

https://docs.google.com/spreadsheets/d/1qQZhWXB_h80HfaDi6VOqeOs7CVNyW9gwtEd-GRqLHKc/edit#gid=1581374593

标签: sqlpostgresql

解决方案


您可以使用 union all 一次选择一列,如下所示。您可以根据需要向每个 SELECT 查询添加其他列(TextA、TextB、Date...)。

SELECT State,City,'Product1' Product, Product1 Value FROM your_table
UNION ALL
SELECT State,City,'Product2' Product, Product2 Value FROM your_table
UNION ALL
SELECT State,City,'Product3' Product, Product3 Value FROM your_table
UNION ALL
SELECT State,City,'Product4' Product, Product4 Value FROM your_table

推荐阅读