Обсуждение: On naming attributes in a WITH clause

Поиск
Список
Период
Сортировка

On naming attributes in a WITH clause

От
AM
Дата:
Hello,

Is it possible to rename columns in a WITH clause which includes VALUES?

None of the following parse:

WITH map_table AS
(
    VALUES ('1','r'),('2','w'),('3','a'),('4','d')
) AS (a,b)
SELECT * FROM map_table;

WITH map_table AS
(
    VALUES ('1','r'),('2','w'),('3','a'),('4','d') AS t (a,b)
)
SELECT * FROM map_table;

I would like the map_table columns to have names other than column1 and column2.

WITH map_table AS
(
    VALUES ('1','r'),('2','w'),('3','a'),('4','d')
)
SELECT column1 AS a, column2 AS b FROM map_table;

is close but I would prefer to rename the columns as part of the WITH clause before the (poorly) named column1 and
column2hit the main query. Is it possible? 

Cheers,
M

Re: On naming attributes in a WITH clause

От
"David Johnston"
Дата:
It is described in the "SELECT" documentation "WITH" section but is somewhat
obscure; just add the column names, in (), after the WITH name.

WITH name (col1, col2, col3) AS (
    SELECT 1, 2, 3
)

David J.

-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of AM
Sent: Wednesday, November 23, 2011 1:46 PM
To: Postgres General
Subject: [GENERAL] On naming attributes in a WITH clause

Hello,

Is it possible to rename columns in a WITH clause which includes VALUES?

None of the following parse:

WITH map_table AS
(
    VALUES ('1','r'),('2','w'),('3','a'),('4','d')
) AS (a,b)
SELECT * FROM map_table;

WITH map_table AS
(
    VALUES ('1','r'),('2','w'),('3','a'),('4','d') AS t (a,b)
)
SELECT * FROM map_table;

I would like the map_table columns to have names other than column1 and
column2.

WITH map_table AS
(
    VALUES ('1','r'),('2','w'),('3','a'),('4','d')
)
SELECT column1 AS a, column2 AS b FROM map_table;

is close but I would prefer to rename the columns as part of the WITH clause
before the (poorly) named column1 and column2 hit the main query. Is it
possible?

Cheers,
M
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make
changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general