Как преобразовать битовый тип в байтовый тип в Postgresql - PullRequest
0 голосов
/ 14 сентября 2018

Я хочу преобразовать битовый тип в bytea в postgresql. Вот так.

select (b'1010110011001100' & b'1011000011110000')::bytea;

Однако произошла ошибка

ERROR:  cannot cast type bit to bytea
LINE 1: select (b'1010110011001100' & b'1011000011110000')::bytea;

Я просто хотел сделать операцию над битовыми строками и преобразовать ее в байтовый тип.

Ответы [ 3 ]

0 голосов
/ 14 сентября 2018

Преобразовать значение бита в шестнадцатеричное и использовать decode():

select decode(to_hex((b'1010110011001100' & b'1011000011110000')::int), 'hex')

 decode 
--------
 \xa0c0
(1 row) 
0 голосов
/ 14 сентября 2018

Вы можете преобразовать бит любой длины в байт , если вы пройдете промежуточную переменную varchar . Однако я сомневаюсь, что это самый эффективный способ:

SELECT decode(b'1010110011001100'::varchar, 'hex');
0 голосов
/ 14 сентября 2018
select decode((b'1010110011001100' & b'1011000011110000')::text,'escape')

или

select ((b'1010110011001100' & b'1011000011110000')::text)::bytea
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...