Exclusive disjunction: xor

Syntax

op1 xor op2

Input parameters

op1

the first operand

op2

the second operand

Examples of valid syntaxes

DS_1 xor DS_2

Semantics for scalar operations

The xor operator returns TRUE if only one of the operand is TRUE (but not both), FALSE otherwise. The two operands must be of boolean type. For example: | FALSE xor FALSE gives FALSE | FALSE xor TRUE gives TRUE | FALSE xor NULL gives NULL | TRUE xor FALSE gives TRUE | TRUE xor TRUE gives FALSE | TRUE xor NULL gives NULL | NULL xor NULL gives NULL

Input parameters type

op1, op2

dataset {measure<boolean> _ }
| component<boolean>
| boolean

Result type

result

dataset {measure<boolean> _ }
| component<boolean>
| boolean

Additional Constraints

None.

Behaviour

The operator has the typical behaviour of the “Behaviour of Boolean operators” (see the section “Typical behaviours of the ML Operators”).

Examples

Given the operand datasets DS_1 and DS_2:

Input DS_1 (see structure)

Id_1

Id_2

Id_3

Id_4

Me_1

M

15

B

2013

True

M

64

B

2013

False

M

65

B

2013

True

F

15

U

2013

False

F

64

U

2013

False

F

65

U

2013

True

Input DS_2 (see structure)

Id_1

Id_2

Id_3

Id_4

Me_1

M

15

B

2013

False

M

64

B

2013

True

M

65

B

2013

True

F

15

U

2013

True

F

64

U

2013

False

F

65

U

2013

False

Example 1

DS_r:=DS_1 xor DS_2;

results in (see structure):

DS_r

Id_1

Id_2

Id_3

Id_4

Me_1

M

15

B

2013

True

M

64

B

2013

True

M

65

B

2013

False

F

15

U

2013

True

F

64

U

2013

False

F

65

U

2013

True

Example 2

DS_r:= DS_1 [ calc Me_2:= Me_1 xor true ];

results in (see structure):

DS_r

Id_1

Id_2

Id_3

Id_4

Me_1

Me_2

M

15

B

2013

True

False

M

64

B

2013

False

True

M

65

B

2013

True

False

F

15

U

2013

False

True

F

64

U

2013

False

True

F

65

U

2013

True

False