Документация по PostgreSQL 9.4.1 | |||
---|---|---|---|
Пред. | Уровень выше | Глава 9. Функции и операторы | След. |
9.6. Функции и операторы для работы с битовыми строками
В этом разделе описываются функции и операторы, предназначенные для работы с битовыми строками, то есть с данными типов bit и bit varying. Помимо обычных операторов сравнения, с такими данными можно использовать операторы, перечисленные в Таблице 9-11. Заметьте, что операторы &, | и # работают только с двоичными строками одинаковой длины. Операторы побитового сдвига сохраняют длины исходных строк, как показано в примерах.
Таблица 9-11. Операторы для работы с битовыми строками
Оператор | Описание | Пример | Результат |
---|---|---|---|
|| | конкатенация | B'10001' || B'011' | 10001011 |
& | битовый AND | B'10001' & B'01101' | 00001 |
| | битовый OR | B'10001' | B'01101' | 11101 |
# | битовый XOR | B'10001' # B'01101' | 11100 |
~ | битовый NOT | ~ B'10001' | 01110 |
<< | битовый сдвиг влево | B'10001' << 3 | 01000 |
>> | битовый сдвиг вправо | B'10001' >> 2 | 00100 |
Следующие функции языка SQL работают как с символьными, так и с битовыми строками: length
, bit_length
, octet_length
, position
, substring
, overlay
.
С битовыми и двоичными строками работают функции get_bit
и set_bit
. При работе с битовыми строками эти функции нумеруют биты слева направо и самый левый бит считается нулевым.
Кроме того, целые значения можно преобразовать в тип 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 бит числа. Если же целое преобразуется в битовую строку большей длины, чем требуется для этого числа, она дополняется слева битами знака числа.
Пред. | Начало | След. |
Функции и операторы двоичных строк | Уровень выше | Поиск по шаблону |