Re: On naming attributes in a WITH clause - Mailing list pgsql-general

From David Johnston
Subject Re: On naming attributes in a WITH clause
Date
Msg-id 07f101ccaa10$f25d4820$d717d860$@yahoo.com
Whole thread Raw
In response to On naming attributes in a WITH clause  (AM <agentm@themactionfaction.com>)
List pgsql-general
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


pgsql-general by date:

Previous
From: AM
Date:
Subject: On naming attributes in a WITH clause
Next
From: Richard Broersma
Date:
Subject: Re: Blank Numeric Column For INSERT