# And Operator

Updated: March 2009

Performs a logical conjunction on two expressions.

result = expression1 And expression2

If, and only if, both expressions evaluate to **True**, *result* is **True**. If either expression evaluates to **False**, *result* is **False**. The logical operation is not short-circuited. All expressions are evaluated.

The following table illustrates how *result* is determined:

If expression1 is |
And expression2 is |
The result is |
---|---|---|

True |
True |
True |

True |
False |
False |

True |
Null |
Null |

False |
True |
False |

False |
False |
False |

False |
Null |
False |

Null |
True |
Null |

Null |
False |
False |

Null |
Null |
Null |

The **And** operator also performs a bitwise comparison of identically positioned bits in two numeric expressions and sets the corresponding bit in *result* according to the following table:

If bit in |
And bit in |
The |
---|---|---|

0 |
0 |
0 |

0 |
1 |
0 |

1 |
0 |
0 |

1 |
1 |
1 |