位串函数和操作符
位串函数和操作符#
本节描述用于检查和操作位串的函数和操作符,也就是操作类型为 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),因此只会转换成整数的最低位。