Допустим, наша таблица имеет 3 столбца и 3 строки. Мы можем смоделировать это с помощью:
select *
from (
values ('row1', 1::int, 12::bit(8)::varbit),
('row2', 2::int, 23::bit(8)::varbit),
('row3', 3::int, 34::bit(8)::varbit)
) as T(A,B,C);
Как видите, первый столбец — varchar
, второй — int
, а третий — varbit
.
Преобразуем третий столбец в int
:
select C::bit(8)::int
from (
values ('row1', 1::int, 12::bit(8)::varbit),
('row2', 2::int, 23::bit(8)::varbit),
('row3', 3::int, 34::bit(8)::varbit)
) as T(A,B,C);
==C==
12
23
34
Дело в том, что вы должны сначала преобразовать его в bit(n)
, а затем вы можете преобразовать bit(n)
в varbit
. То же самое верно и для int
до varbit
.
person
Ramazan Polat
schedule
19.06.2019