如何 Select 整数作为位&;的表;状态例如,如果我的int是13,我希望看到这个输出.
bit# | state
0 | 1
1 | 0
2 | 1
3 | 1
4 | 0
5 | 0
.. | ..
如何 Select 整数作为位&;的表;状态例如,如果我的int是13,我希望看到这个输出.
bit# | state
0 | 1
1 | 0
2 | 1
3 | 1
4 | 0
5 | 0
.. | ..
在Bit String Types的Postgres中,对位的操作很简单.您可以轻松地将整数转换为位字符串,例如:
select 13::bit(8);
bit
----------
00001101
(1 row)
您需要将位字符串值强制转换为文本数组,并取消对其的测试,以表的形式获得结果:
select 8- ord as bit, state
from unnest(string_to_array(13::bit(8)::text, null)) with ordinality as u(state, ord)
order by 1
必须预先设置所需的位数.用上述查询中的给定数字替换8.在Postgres 14+中,你可以使用string_to_table()
而不是unnest(string_to_array()).
在db<>fiddle.分钟内进行测试