I have this situation, I have a table with name->value columns like this
| NAME | VALUE |
|---|---|
| ip | 12.12.12.12 |
| name | Smith |
| db | base |
| pass | 22222 |
I would like to select this table like this
| ip | name | db | pass |
|---|---|---|---|
| 12.12.121.2 | Smith | base | 22222 |
As if the values of column NAME are the column names and the values of the VALUE column are the column values. And the rows are variable, they can be 2 or 22 so if 22 then there should be 22 columns, well each one has a unique name.
I see that crosstab is the solution, so i try this:
select * from crosstab( 'SELECT col1,col2,col3 FROM settings' ) as res (section varchar,naam varchar,value1 text);
But i get ERROR: return and sql tuple descriptions are incompatible. What is wrong with this query?