更新时间:2025-03-13 GMT+08:00
Unpivot
算子说明
转置算子。用于将行转换为列。这个操作可以将一张表中的多列数据转换为两列,其中一列是原始表中的列名,另一列是对应的值。
典型场景
查询使用unpivot转置的表。
示例
示例:查询使用unpivot转置的表。
--数据准备。 gaussdb=# CREATE TABLE t1 (id int, number int, grade int); CREATE TABLE gaussdb=# INSERT INTO t1 VALUES(generate_series(1,100), 1, 2); INSERT 0 100 --执行结果。 gaussdb=# EXPLAIN SELECT * FROM t1 UNPIVOT (v1 FOR v2 in (id,number,grade)); QUERY PLAN -------------------------------------------------------------------------------------- Subquery Scan on __unnamed_unpivot_subquery__ (cost=0.00..87.80 rows=5806 width=36) Filter: (__unnamed_unpivot_subquery__.v1 IS NOT NULL) -> Unpivot (cost=0.00..29.45 rows=5835 width=36) -> Seq Scan on t1 (cost=0.00..29.45 rows=1945 width=12) (4 rows) --删除。 gaussdb=# DROP TABLE t1;
父主题: 运算符