解决方法
确实可以用sql编写它.这是一个起点:
select array( select substring(str from i for 1) as bit from generate_series(1,length(str)) as i where bit = '1' );
不过,您可能希望将其包装在pl / sql函数中,以避免在整个地方重复代码.
工作功能:
create or replace function get_bit_positions(varbit) returns bit[] as $$ select array( select substring($1 from i for 1) as bit from generate_series(1,length($1)) as i where substring($1 from i for 1) = '1' ); $$language sql immutable;