9.6. 位字符串函数和运算符

本节介绍用于检查和操作位字符串(即bitbit varying类型的值)的函数和运算符。除了通常的比较运算符外,还可以使用Table 9.13中所示的运算符。 &|#的位串操作数必须具有相等的长度。如示例所示,当进行位移时,将保留字符串的原始长度。

表 9.13. 位字符串运算符

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
<< 左移 B'10001' << 3 01000
>> 右移 B'10001' >> 2 00100

以下 SQL 标准函数对位字符串和字符串均起作用:lengthbit_lengthoctet_lengthpositionsubstringoverlay

以下函数适用于位字符串和二进制字符串:get_bitset_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),因此将仅传递整数的最低有效位。

Note

将整数强制转换为bit(n)将复制最右边的n位。将整数转换为比整数本身宽的位字符串宽度将在左侧符号扩展。

上一章 首页 下一章