位串函数和操作符
位串函数和操作符#
位串函数和操作符
本节描述用于检查和操作位串的函数和操作符,也就是操作类型为bit
和bit varying
的值的函数和操作符。除了常用的比较操作符之外,还可以使用表里显示的操作符。&
、|
和#
的位串操作数必须等长。在移位的时候,保留原始的位串的的长度,如例子所示。
表 位串操作符
操作符 |
描述 |
例子 |
结果 |
---|---|---|---|
|
连接 |
|
|
|
按位与 |
|
|
|
按位或 |
|
|
|
按位异或 |
|
|
|
按位求反 |
|
|
|
按位左移 |
|
|
|
按位右移 |
|
|
下面的SQL标准函数除了可以用于字符串之外,也可以用于位串:
length
、 bit_length
、 octet_length
、
position
、 substring
、 overlay
。
下面的函数除了可以用于二进制串之外,也可以用于位串: get_bit
、
set_bit
。
当使用于一个位串时,这些函数将串的第一(最左)位计数为位 0。
另外,我们可以在整数和bit
之间来回转换。一些例子:
44::bit(10) 0000101100
44::bit(3) 100
cast(-44 as bit(12)) 111111010100
'1110'::bit(4)::integer 14
请注意,如果只是转换为“bit”,意思是转换成bit(1)
,因此只会转换整数的最低有效位。
备注
注意
把一个整数转换成bit(n)
将拷贝整数的最右边的n
位。
把一个整数转换成比整数本身长的位串,就会在最左边扩展符号。