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

如何修改PostgreSQL查询以返回条件对应的布尔值列

修改后的PostgreSQL查询

直接将每个条件作为布尔列返回即可,PostgreSQL会自动将表达式结果转换为true/false:

SELECT
  attrs @> '[{"Key": "baz", "Value": "false"}]' AS baz,
  attrs @> '[{"Key": "spam", "Value": "false"}]' AS spam,
  jsonb_array_length(vals) = 1 AS "length"
FROM foo
WHERE id = (
  SELECT id
  FROM bar
  WHERE tag @> '[{"Value":"val"}]'
)
AND (
  attrs @> '[{"Key": "baz", "Value": "false"}]'
  OR attrs @> '[{"Key": "spam", "Value": "false"}]'
  OR jsonb_array_length(vals) = 1
);

说明

  • 每个条件直接作为列定义,结果自动是布尔值,对应条件是否满足
  • length是PostgreSQL关键字,所以用双引号"length"包裹列名避免语法错误
  • 保留原WHERE子句,确保只返回原本符合筛选条件的行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 21:17:01