BIT_SHIFT_LEFT() — Shifts the bits of a BIGINT value to the left a specified number of places.

BIT_SHIFT_LEFT( *value*,
*offset* )

The BIT_SHIFT_LEFT() function shifts the bit values of a BIGINT
value to the left the number of places specified by
*offset*. The offset must be a positive integer
value. The unspecified bits to the right are padded with zeros. So, for
example, if the offset is 5, the left-most 5 bits are dropped, the
remaining bits are shifted 5 places to the left, and the right-most 5 bits
are set to zero. The result is returned as a new BIGINT value — the
arguments to the function are not modified.

The left-most bit of an integer number is the sign bit, but has no special meaning for bitwise operations. However, The left-most bit set to 1 followed by all zeros is reserved as the NULL value. If you use a NULL value as an argument, you will receive a NULL response. But in all other circumstances (using non-NULL BIGINT arguments), the bitwise functions should never return a NULL result. Consequently any bitwise operation that would result in only the left-most bit being set, will generate an error at runtime.

The following example shifts the bits in a BIGINT value three places to the left and displays the hexadecimal representation of both the initial value and the resulting value.

$ sqlcmd 1> create table bits (a bigint); 2> insert into bits values (112); 3> select hex(a), hex(bit_shift_left(a,3)) from bits; C1 C2 -------- --------- 70 380