Re: [HACKERS] Subselects and NOTs
Vadim Mikheev <vadim@sable.krasnoyarsk.su>
From: "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>
To: ocie@paracel.com
Cc: "Meskes, Michael" <meskes@topsystem.de>, Andreas.Zeugswetter@telecom.at, pgsql-hackers@hub.org
Date: 1998-02-20T01:26:51Z
Lists: pgsql-hackers
ocie@paracel.com wrote: > > Meskes, Michael wrote: > > > > Exactly the same with the latest Oracle7 version. > > I also get the same results with Sybasem, with one interesting > exception. Sybase will not let me select * in a subquery! It gives > me the following: > > The symbol '*' can only be used for a subquery select list when the subquery is > introduced with EXISTS or NOT EXISTS. It's funny... SyBases could check subquery' target list length... Ok, thanks. Pg returns the same results for these queries. But I asked Andreas to run other queries and they show that both Oracle & Informix push NOT into subquery clause (and so, 'NOT x IN' is equal 'x NOT IN'), Pg doesn't, currently. Ocie, could you run this in SyBase: create table a (a int, a1 char(8)); create table b (b int); insert into a values (1, 'one'); insert into a values (NULL, 'null'); insert into b values (1); insert into b values (NULL); select * from a where a in (select * from b); -- 1 row with a == 1 expected select * from a where a not in (select * from b); -- 0 row expected select * from a where not a in (select * from b); -- 0 row in Oracle & Informix, 1 row in Pg (with a == NULL), SyBase ??? select * from a where not (a in (select * from b)); -- the same. SyBase ??? Vadim