Re: Two columns with same name in subselect--any way to SELECT without *?

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Ken Tanzer <ken(dot)tanzer(at)gmail(dot)com>, PG-General Mailing List <pgsql-general(at)postgresql(dot)org>
Subject: Re: Two columns with same name in subselect--any way to SELECT without *?
Date: 2018-01-07 05:10:09
Message-ID: cac087e4-90f8-9de0-cc8e-f8bc979bf9fc@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 01/06/2018 08:46 PM, Ken Tanzer wrote:
> Hi.  You can have multiple columns with the same name, and use it as a
> subselect, like this silly example:
>
> SELECT 'a' AS my_col,'b' AS my_col,'foo' AS other;
> SELECT * FROM (SELECT 'a' AS my_col,'b' AS my_col,'foo' AS other) foo;
>
> But is there any way to select either of those columns without taking
> all the fields with *?
>
> SELECT my_col,other FROM (select 'a' AS my_col,'b' AS my_col,'foo' AS other) foo;
> ERROR: column reference "my_col" is ambiguous
>
> I suspect there isn't, but just wondering if there's some way I'm not
> aware of.

?:
SELECT bar.my_col, foo.my_col FROM (SELECT 'a' AS my_col) as bar ,
(select 'b' AS my_col,'foo' AS other) foo;

my_col | my_col
--------+--------
a | b

Though I would think this would just be pushing the point where you get
confused what my_col is really pointing to down the road.

>
> I found myself wanting to specify the columns by position, similar to
> ORDER or GROUP. (*.1, foo.1 or something like that), but that's probably
> wishful thinking!
>
> Cheers,
>
> Ken
>
>
>
> --
> AGENCY Software
> A Free Software data system
> By and for non-profits
> /http://agency-software.org//
> /https://demo.agency-software.org/client/
> ken(dot)tanzer(at)agency-software(dot)org <mailto:ken(dot)tanzer(at)agency-software(dot)org>
> (253) 245-3801
>
> Subscribe to the mailing list
> <mailto:agency-general-request(at)lists(dot)sourceforge(dot)net?body=subscribe> to
> learn more about AGENCY or
> follow the discussion.

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ken Tanzer 2018-01-07 05:16:46 Re: Two columns with same name in subselect--any way to SELECT without *?
Previous Message Ken Tanzer 2018-01-07 04:46:01 Two columns with same name in subselect--any way to SELECT without *?