Re: EXCEPT call not working

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: chris mutchler <davron(at)leibnizcreations(dot)com>
Cc: pgsql-general(at)hub(dot)org
Subject: Re: EXCEPT call not working
Date: 2000-09-08 00:19:01
Message-ID: 15693.968372341@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

chris mutchler <davron(at)leibnizcreations(dot)com> writes:
> But as soon as I place the EXCEPT call in there it stops working and
> doesn't return any values:

Are you sure the query *should* be returning any values? It's not
obvious from your example whether the EXCEPT might not exclude all
the values from the UNION.

One thing to look at is that the current implementation of union
has some problems if the column datatypes aren't exactly alike in
the union'd selects. For example if you have

> SELECT p.ids_name, m.start_time, m.end_time
> FROM mail_schedule m, personnel p
> WHERE p.ids_int = m.ids_int AND
> m.dow = $weekday
> UNION
> SELECT p.ids_name, c.on_start, c.on_end
> FROM mail_changes c, personnel p
> WHERE p.ids_int = c.ids_int

and, say, m.start_time is DATE while c.on_start is TIMESTAMP, it'll try
to work but probably have problems. Explicitly casting the columns to
the same datatype is the best workaround at the moment.

I'm not sure offhand whether the same is true for except and intersect,
but could be...

regards, tom lane

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Hoosain Madhi 2000-09-08 05:13:29 type casting varchar to int
Previous Message Dave Camarillo 2000-09-08 00:16:43 Perl Module + postgres 7.0.2