You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在psql中执行位翻转操作报错operator does not exist: bit & integer,求解答

问题分析与解决

你的操作核心错误是类型不匹配:

  • b'11'是PostgreSQL的bit类型(固定长度的位串)
  • ~0是对整数0做按位取反,返回的是integer类型(值为-1)

PostgreSQL没有定义bit与integer之间的&位运算操作符,因此触发报错。

解决方法

根据你的需求,有两种处理方式:

  1. 将整数结果转为对应长度的bit类型,保证运算两边类型一致:
select b'11' & ~0::bit(2);

这里::bit(2)把整数~0转为2位的位串b'11',与b'11'做与运算后结果为b'11'。

  1. 如果你的实际需求是对bit类型值直接取反,无需借助整数,直接对bit值使用~操作符:
select ~b'11';

该语句会返回b'00'(对应2位位串的取反结果)。

内容的提问来源于stack exchange,提问作者user20543568

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 12:37:00