postgresql - 如何使函数在 postgreSQL 中使用 CASE 和 IFNULL?

标签 postgresql function stored-procedures case ifnull

你能告诉我如何在 postgre 中使用 CASE 和 IFNULL 吗?我正在从 sql 迁移到 postgreSQL,我想用这种语法创建一个函数:

SELECT a.furniture_id, a.furniture_brand, a.furniture_cost, 
CASE 
  WHEN furniture_id = f_id THEN a.furniture_content 
  ELSE '' 
END CONTENT 
   FROM tb_furniture a
   WHERE 
    (IFNULL(a.sale_id,0) = IFNULL(f_id,0) OR (a.furniture_id = f_Id AND IFNULL(a.furniture_content,'') > '')) 
    AND a.published = 1;

谢谢之前(y)

最佳答案

这似乎是你所追求的,但仔细检查 WHERE 条件:

SELECT a.furniture_id, a.furniture_brand, a.furniture_cost, 
       CASE WHEN a.furniture_id = f_id
       THEN a.furniture_content 
       ELSE '' 
       END AS content
FROM tb_furniture a
WHERE (coalesce(a.sale_id,0) = coalesce(f_id,0) OR length(content) > 0)
  AND a.published = 1;

关于postgresql - 如何使函数在 postgreSQL 中使用 CASE 和 IFNULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31283052/

相关文章:

postgresql - 为什么以及如何将 hibernate_sequence 用于 id 生成器

SQL检查是否存在多个

r - 将算术运算符视为函数

javascript - 在 Qualtrics 中使用平均函数

java - 从 Java 将值作为数组传递到数据库存储过程

sql - SQL Server 2005在远程计算机上执行exe或连接到服务器应用程序

sql - 函数显示错误 "relation my_table does not exist"

windows - 如何获取连接到 PostgreSQL 服务器的客户端机器名称/IP 地址

function - 我如何正确设置衰减学习率回调并将其传递给 xgboost 中的自定义函数?

java - 使用带 REF_CURSOR 的存储过程的 Spring 存储库