BOOL_XOR [Aggregate]
Processes Boolean values and returns a Boolean value result. If specifically only one input value is true, BOOL_XOR
returns t
. Otherwise, it returns f
.
Behavior Type
Syntax
BOOL_XOR (
expression)
Parameters
expression |
A Boolean data type or any non-Boolean data type that can be implicitly coerced to a Boolean data type. |
Examples
The following example shows how to use aggregate functions BOOL_AND
, BOOL_OR
, and BOOL_XOR
. The sample table mixers
includes columns for models and colors.
=> CREATE TABLE mixers(model VARCHAR(20), colors VARCHAR(20)); CREATE TABLE
Insert sample data into the table. The sample adds two color fields for each model.
=> INSERT INTO mixers SELECT 'beginner', 'green' UNION ALL SELECT 'intermediate', 'blue' UNION ALL SELECT 'intermediate', 'blue' UNION ALL SELECT 'advanced', 'green' UNION ALL SELECT 'advanced', 'blue' UNION ALL SELECT 'professional', 'blue' UNION ALL SELECT 'professional', 'green' UNION ALL SELECT 'beginner', 'green'; OUTPUT -------- 8 (1 row)
Query the table. The result shows models that have two blue (BOOL_AND
), one or two blue (BOOL_OR
), and specifically not more than one blue (BOOL_XOR
) mixer.
=> SELECT model, BOOL_AND(colors= 'blue')AS two_blue, BOOL_OR(colors= 'blue')AS one_or_two_blue, BOOL_XOR(colors= 'blue')AS specifically_not_more_than_one_blue FROM mixers GROUP BY model; model | two_blue | one_or_two_blue | specifically_not_more_than_one_blue --------------+----------+-----------------+------------------------------------- advanced | f | t | t beginner | f | f | f intermediate | t | t | f professional | f | t | t (4 rows)