Arithmetic Operators

x * x

multiplication

x

6 ← 2 * 3
x / x

division

x

3 ← 9 / 3
       3 ← 10 / 3
3.333333 ← 10 / 3.0
x % x

modulo (integer remainder)

x

3 ← 123 % 10

Bitwise Operators

n & n

bitwise AND

n

 0 ← 0 & 0
 0 ← 1 & 0
 0 ← 0 & 1
 1 ← 1 & 1
10 ← 15 & 10 
     (1010 ← 1111 & 1010)
n | n

bitwise OR

n

 0 ← 0 | 0
 1 ← 1 | 0
 1 ← 0 | 1
 1 ← 1 | 1
15 ← 15 | 10 
     (1111 ← 1111 | 1010)
n ^ n

bitwise XOR

n

0 ← 0 ^ 0
1 ← 1 ^ 0
1 ← 0 ^ 1
0 ← 1 ^ 1
5 ← 15 ^ 10 
    (0101 ← 1111 ^ 1010)

Comparison Operators

z = z

equality test

b

4 = 2 + 2
'a' = 'A'
z > z

greater than

b

55 > 44
'time' > 'money'
z < z

less than

b

44 < 55
'angst' < 'courage'
z >= z

greater than or equals

b

55 >= 55
'passion' >= 'persistence'
z <= z

less than or equals

b

44 <= 55
'manqué' <= 'munificent'
z <> z

not equal

b

44 <> 55
'yin' <> 'yang'

Compound operators

Logical Operators

b AND b

logical AND

b

'True' ← SELECT CASE
           WHEN 1 = 1 AND 2 = 2
             THEN 'True'
             ELSE 'False'
           END
'False' ← SELECT CASE
           WHEN 1 = 1 AND 2 = 4
             THEN 'True'
             ELSE 'False'
           END
b OR b

logical OR

b

'True' ← SELECT CASE
          WHEN 1 = 1 OR 2 = 2
            THEN 'True'
            ELSE 'False'
          END
'True' ← SELECT CASE
          WHEN 1 = 1 OR 2 = 4
            THEN 'True'
            ELSE 'False'
          END
NOT b

logical NOT

b

'False' ← SELECT CASE
           WHEN NOT 1 = 1
             THEN 'True'
             ELSE 'False'
           END
 'True' ← SELECT CASE
           WHEN NOT 2 = 4
             THEN 'True'
             ELSE 'False'
           END

Unary Operators

+ x

positive

x

5 ← +5
- x

negative

x

-5 ← -5
~ n

bitwise complement

n

  1 ← ~ CAST(0 AS BIT)
  0 ← ~ CAST(1 AS BIT)

255 ← ~ CAST(0 AS TINYINT)
      (11111111 = ~00000000)
254 ← ~ CAST(1 AS TINYINT)
      (11111110 = ~00000001)
240 ← ~ CAST(15 AS TINYINT)
      (11110000 = ~00001111)

 -1 ← ~ CAST(0 AS INT)
      (11111111 = ~00000000)
 -2 ← ~ CAST(1 AS INT)
      (11111110 = ~00000001)
-16 ← ~ CAST(15 AS INT)
      (11110000 = ~00001111)

Unary Operators

s + s

string concatenation

s

'Foobar' ← 'Foo' + 'Bar'