
# 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;
```
上述示例中，Unpivot算子输出信息如下所示。
| 信息名称     | 含义     |
|:---|:---|
| Unpivot  | 算子的名称。 |
| Seq Scan | 算子的名称。 |
   
