Thread: Set Membership operator -- test group membership

Set Membership operator -- test group membership

From
Sophie Yang
Date:
Say I have a table tbl1 with two columns:
   tbl1(a integer, b integer, c integer)

I want to select the rows in which a and b are members
of a list of integer pairs. The SQL in my mind is
something like:
  select * from tbl1 where (a, b) in ((1, 20), (2,
30), (3, 50));

I know the SQL above does not work in PostgreSQL. I
wonder what is the proper way to use in PostgreSQL. I
tried "select * from tbl1 where (a, b) in ('{{1, 20},
{2, 30}, {3, 50}}')", and it doesn't work either.

Thanks!
Sophie



__________________________________
Yahoo! Mail Mobile
Take Yahoo! Mail with you! Check email on your mobile phone.
http://mobile.yahoo.com/learn/mail

Re: Set Membership operator -- test group membership

From
"Igor Katrayev"
Date:
Sophie,

The sql like this:
  select * from tbl1 where (a, b) in ((1, 20), (2, 30), (3, 50));
works very well in PostgreSQL 8,

Sincerely,

Igor Katrayev, Data Systems Manager
North Pacific Research Board
1007 West Third Avenue, Suite 100
Anchorage, AK 99501
Phone: 907-644-6700
Fax:   907-644-6780
igor.katrayev@nprb.org


-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of Sophie Yang
Sent: Tuesday, June 14, 2005 11:09 AM
To: pgsql-general@postgresql.org
Cc: pgsql-novice@postgresql.org; pgsql-sql@postgresql.org
Subject: [GENERAL] Set Membership operator -- test group membership

Say I have a table tbl1 with two columns:
   tbl1(a integer, b integer, c integer)

I want to select the rows in which a and b are members of a list of
integer pairs. The SQL in my mind is something like:
  select * from tbl1 where (a, b) in ((1, 20), (2, 30), (3, 50));

I know the SQL above does not work in PostgreSQL. I wonder what is the
proper way to use in PostgreSQL. I tried "select * from tbl1 where (a,
b) in ('{{1, 20}, {2, 30}, {3, 50}}')", and it doesn't work either.

Thanks!
Sophie



__________________________________
Yahoo! Mail Mobile
Take Yahoo! Mail with you! Check email on your mobile phone.
http://mobile.yahoo.com/learn/mail

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend



Re: Set Membership operator -- test group membership

From
Sophie Yang
Date:
Thanks! Well, it is time to upgrade my PostgreSQL
7.4.2. :)

Sophie

-----Original Message-----
From: "Igor Katrayev" <igor ( dot ) katrayev ( at )
nprb ( dot ) org>
To: <pgsql-general ( at ) postgresql ( dot ) org>
Subject: Re: Set Membership operator -- test group
membership
Date: Tue, 14 Jun 2005 11:27:30 -0800

--------------------------------------------------------------------------------

Sophie,

The sql like this:
  select * from tbl1 where (a, b) in ((1, 20), (2,
30), (3, 50));
works very well in PostgreSQL 8,

Sincerely,

Igor Katrayev, Data Systems Manager
North Pacific Research Board
1007 West Third Avenue, Suite 100
Anchorage, AK 99501
Phone: 907-644-6700
Fax:   907-644-6780
igor ( dot ) katrayev ( at ) nprb ( dot ) org


-----Original Message-----
From: pgsql-general-owner ( at ) postgresql ( dot )
org
[mailto:pgsql-general-owner ( at ) postgresql ( dot )
org] On Behalf Of Sophie Yang
Sent: Tuesday, June 14, 2005 11:09 AM
To: pgsql-general ( at ) postgresql ( dot ) org
Cc: pgsql-novice ( at ) postgresql ( dot ) org;
pgsql-sql ( at ) postgresql ( dot ) org
Subject: [GENERAL] Set Membership operator -- test
group membership

Say I have a table tbl1 with two columns:
   tbl1(a integer, b integer, c integer)

I want to select the rows in which a and b are members
of a list of
integer pairs. The SQL in my mind is something like:
  select * from tbl1 where (a, b) in ((1, 20), (2,
30), (3, 50));

I know the SQL above does not work in PostgreSQL. I
wonder what is the
proper way to use in PostgreSQL. I tried "select *
from tbl1 where (a,
b) in ('{{1, 20}, {2, 30}, {3, 50}}')", and it doesn't
work either.

Thanks!
Sophie



__________________________________
Yahoo! Mail Mobile
Take Yahoo! Mail with you! Check email on your mobile
phone.
http://mobile.yahoo.com/learn/mail




__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

Re: [SQL] Set Membership operator -- test group membership

From
Oleg Bartunov
Date:
Look contrib/intarray

On Tue, 14 Jun 2005, Sophie Yang wrote:

> Say I have a table tbl1 with two columns:
>   tbl1(a integer, b integer, c integer)
>
> I want to select the rows in which a and b are members
> of a list of integer pairs. The SQL in my mind is
> something like:
>  select * from tbl1 where (a, b) in ((1, 20), (2,
> 30), (3, 50));
>
> I know the SQL above does not work in PostgreSQL. I
> wonder what is the proper way to use in PostgreSQL. I
> tried "select * from tbl1 where (a, b) in ('{{1, 20},
> {2, 30}, {3, 50}}')", and it doesn't work either.
>
> Thanks!
> Sophie
>
>
>
> __________________________________
> Yahoo! Mail Mobile
> Take Yahoo! Mail with you! Check email on your mobile phone.
> http://mobile.yahoo.com/learn/mail
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>

     Regards,
         Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83