将表值转换为列名称|值

时间:2018-01-24 09:23:23

标签: sql database select vertica

我有一张包含两列的表格,名称&值:

Name    Value   

col1    value1  
col2    value2  
col3    value3

现在,我想以这样的方式从表中选择 名称变为列名称,值变为每列的值

col1    col2    col3    

value1  value2  value3  

我在Vertica中编写查询,但任何形式的逻辑帮助都可以。

1 个答案:

答案 0 :(得分:2)

尝试使用 DECODE

参见示例:

    create table bla  (
name varchar(10),
value varchar(10)
);


insert into bla values ('col1','value1');
insert into bla values ('col2','value2');
insert into bla values ('col3','value3');

SELECT 
MAX( DECODE( name , 'col1' , value ) ) AS col1 ,
MAX( DECODE( name , 'col2' , value ) ) AS col2 ,
MAX( DECODE( name , 'col3' , value ) ) AS col3 
FROM bla

- 输出

col1    col2    col3
value1  value2  value3