如何 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.分钟内进行测试

Postgresql相关问答推荐

包含JSONB属性的过滤器的索引策略

端口5432失败:致命:数据库xxx&不存在.在PostgreSQL数据库中

PostgreSQL(container)中使用80K子分区表处理共享内存不足错误

即使不对订阅服务器进行任何修改,Postgres逻辑复制也可能发生冲突吗?

忽略 split_part 的第 n 个分隔符之后

对 VOLATILE 函数的调用会 destruct SELECT 语句的原子性

Postgres 生成的列不是不可变的

全文搜索(Postgres)与Elastic search

PostgreSQL:根据排序顺序仅 Select 每个 id 的第一条记录

INSERT RETURNING 是否保证以 right的顺序返回?

将 SELECT 结果作为参数传递给 postgreSQL 函数

在 PostgreSQL 中表示Sparse稀疏数据

Select 中的 PostgreSQL 正则表达式捕获组

在 PostgreSQL 中显示正在运行的查询的全文

仅在存在时重命名列

在 MAC OS X 10.6 for PostgreSQL 上设置 SHMMAX 等值

错误:prepared statement "S_1" already exists

实时监控 PostgreSQL 查询的应用程序?

如何查询前 10 行,下一次从表中查询其他 10 行

PostgreSQL - 如何在不同时区呈现日期?