PostgreSQL 8.2.3 中文文档
后退快退章9. 函数和操作符快进前进

9.6. 位串函数和操作符

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

表9-10. 位串操作符

操作符描述例子结果
||连接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' << 301000
>>位右移B'10001' >> 200100

下面的 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) ,因此只会转换成整数的最低位。

【注意】在 PostgreSQL 8.0以前,把一个整数转换成 bit(n) 将拷贝整数的最左边的 n 位,而现在是拷贝最右边的 n 位。还有,把一个整数转换成比整数本身长的位串,就会扩展最左边的位(非负数为 0 ,负数为 1)。


后退首页前进
二进制字符串函数和操作符上一级模式匹配