XOR logical operator
Is there a XOR logical operator in Postgresql, or a
function for XOR ??
I only found in the docs a Binary XOR (#).
I need to do the following checkup:
(field1 is NULL XOR field2 is NULL XOR filed3 is NULL)
i can't right it like this:
(
(field1 is NUll or field2 is NUll)
and (field1 is NUll or field3 is NUll)
and (field2 is NUll or field3 is NUll)
)
But if i have alot of fields :
field1,field2,...,field5
... this will take a hell of a time
I can write a function F1 that does the following:
if a field is NULL it will return 1
else it will return 0
then i can do:
(F1(field1) # F1(field2) # F1(field3) ...)
but i just wanted to see if XOR already exists ...
__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com
Hello,
PostgreSQL hasn't logical operator XOR. But You can find it in cookbook
http://www.brasileiro.net/postgres/cookbook/view-recipes.adp?section_id=41&format=long
Regards
Pavel
On Fri, 17 Oct 2003, Nagib Abi Fadel wrote:
Show quoted text
Is there a XOR logical operator in Postgresql, or a
function for XOR ??I only found in the docs a Binary XOR (#).
I need to do the following checkup:
(field1 is NULL XOR field2 is NULL XOR filed3 is NULL)i can't right it like this:
(
(field1 is NUll or field2 is NUll)
and (field1 is NUll or field3 is NUll)
and (field2 is NUll or field3 is NUll)
)But if i have alot of fields :
field1,field2,...,field5
... this will take a hell of a time
I can write a function F1 that does the following:
if a field is NULL it will return 1
else it will return 0then i can do:
(F1(field1) # F1(field2) # F1(field3) ...)but i just wanted to see if XOR already exists ...
__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
On Fri, 17 Oct 2003, Nagib Abi Fadel wrote:
Is there a XOR logical operator in Postgresql, or a
function for XOR ??I only found in the docs a Binary XOR (#).
I need to do the following checkup:
(field1 is NULL XOR field2 is NULL XOR filed3 is NULL)
Good idea. hmmm
CREATE FUNCTION xor(bool,bool) RETURNS bool AS '
SELECT ($1 AND NOT $2) OR (NOT $1 AND $2);
' LANGUAGE 'sql';
CREATE OPERATOR ~| (PROCEDURE='xor',LEFTARG=bool,RIGHTARG=bool);
May not be all that neat but it does work so long as you use
brackets... I think improvements could be made. (10 minute job if that)
Peter Childs
Show quoted text
i can't right it like this:
(
(field1 is NUll or field2 is NUll)
and (field1 is NUll or field3 is NUll)
and (field2 is NUll or field3 is NUll)
)But if i have alot of fields :
field1,field2,...,field5
... this will take a hell of a time
I can write a function F1 that does the following:
if a field is NULL it will return 1
else it will return 0then i can do:
(F1(field1) # F1(field2) # F1(field3) ...)but i just wanted to see if XOR already exists ...
__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org