位串函数和操作符

本节描述用于检查和操作位串的函数和操作符,也就是操作类型为bit 和bit varying值的函数和操作符。除了常用的比较操作符之外, 还可以使用下表里显示的操作符。 &, |,# 的位串操作数必须等长。在移位的时候,保留原始的位串长度,如例子所示。

表.位串操作符

操作符 描述 例子 结果
|| 连接 B‘10001’ || B‘011’ 10001011
& 按位与 B‘10001’ & B‘01101’ 00001
| 按位或 B‘10001’ | B‘01101’ 11101
# 按位异或 B‘10001’ # B‘01101’ 11100
~ 按位取反 ~ B‘10001’ 01110
<< 按位左移 B‘10001’ << 3 01000
>> 按位右移 B‘10001’ >> 2 00100

下面的SQL标准函数除了可以像用于字符串一样用于位串length, bit_length, octet_length, position, substring。另外,我们可以在整数和bit之间来回转换。例子:

44::bit(10)                    0000101100
44::bit(3)                     100
cast(-44 as bit(12))           111111010100
'1110'::bit(4)::integer        14

请注意,只是转换为”bit”的意思是转换成bit(1),因此只会转换成整数的最低位。