Обсуждение: 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
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
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
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