This section describes functions and operators for examining and manipulating bit strings, that is values of the typesbit
andbit varying
. Aside from the usual comparison operators, the operators shown inTable 9.13can be used. Bit string operands of&
,|
, and#
must be of equal length. When bit shifting, the original length of the string is preserved, as shown in the examples.
Table 9.13. Bit String Operators
Operator
Description
Example
Result
`
`
concatenation
`B'10001'
B'011'`
10001011
&
bitwise AND
B'10001' & B'01101'
00001
`
`
bitwise OR
`B'10001'
B'01101'`
11101
#
bitwise XOR
B'10001' # B'01101'
11100
~
bitwise NOT
~ B'10001'
01110
<<
bitwise shift left
B'10001' << 3
01000
>>
bitwise shift right
B'10001' >> 2
00100
The followingSQL-standard functions work on bit strings as well as character strings:length
,bit_length
,octet_length
,position
,substring
,overlay
.
The following functions work on bit strings as well as binary strings:get_bit
,set_bit
. When working with a bit string, these functions number the first (leftmost) bit of the string as bit 0.
In addition, it is possible to cast integral values to and from typebit
. Some examples:
Note that casting to just“bit”means casting tobit(1)
, and so will deliver only the least significant bit of the integer.
Casting an integer tobit(n)
copies the rightmostn
bits. Casting an integer to a bit string width wider than the integer itself will sign-extend on the left.