sql - 如果为真,则强制查询结果

标签 sql postgresql select

我有一个如下所示的查询:

SELECT cust.adm, COUNT(visits.visit_date) as visit_count FROM cust
LEFT JOIN visits ON cust.cust_id = visits.cust_id
WHERE cust.cust_id = 1
GROUP BY cust.adm

结果是:

   adm   |   visit_count
--------------------------
  TRUE   |        0

如果 adm 为真,是否有办法强制“visit_count”的结果为“3”?

最佳答案

您可以使用 case 表达式:

SELECT    cust.adm,
          CASE cust.adm WHEN TRUE THEN 3 ELSE COUNT(visits.visit_date) END AS visit_count 
FROM      cust
LEFT JOIN visits ON cust.cust_id = visits.cust_id
WHERE     cust.cust_id = 1
GROUP BY  cust.adm

关于sql - 如果为真,则强制查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56775681/

相关文章:

php - 如何在选中另一个复选框时取消选中复选框?

c# - 如何将 Azure SQL 与 Azure BLOB 存储同步?

sql - 在同一查询中多次使用计算列

sql - Postgres中判断约束名称是否为系统生成

c# - 如何读取超过 65535 行的 Excel 2007 电子表格?

select - SQL 通过将值与聚合函数结果进行比较来选择行

MYSQL 全文匹配不返回预期结果

sql - 使用主键连接大表

database - PostgreSQL:无法在规则的内部查询中引用 NEW

c++ - OpenSSL 套接字 : Select always returns 0