What does the & symbol mean in this TSQL query?

rightfax, sql, sql-server, t-sql

Solution

The `&` is doing a bit-wise "and". So, it is "1" only when both bits are 1. The logic overall is checking that all the bits in `value` are set in `field`.

As an example, consider that `value` is:

0000 0101

Then if field is

1111 1111

The `&` is:

0000 0101

(The `1`s are only where both are `1`.)

And this is the same as `value`. So, this passes the condition.

Now if `field` is:

0001 1110

Then the `&` is:

0000 0100

And this differs from `value`, so it does not pass the condition.

Problem

I have been working on some reports and recently found a small guide for the system I have been querying against. Part of the syntax it offers up is like the following: ``` ... "WHERE [FIELD] & [VALUE] = [VALUE]" ``` i.e.: `... "WHERE flags & 16 = 16"` I am just curious as to what this syntax is meaning... I get something like WHERE flags = 16, but not the '&16 = 16' part. Any clarification? The article referenced: http://rightfaxapi.com/advanced-sql-for-manipulating-faxes/ Thank you, Wes

Original source