sql - PostgreSQL:选择两个字段之一,具体取决于哪个字段为空

标签 sql postgresql syntax ternary-operator

你好,我有一个查询,我想根据一个字段是否为空来选择两个字段之一的值。

field1 and field2

我想将它们选为 complete_field

IF field1 is empty, then complete_field is field2
ELSE complete_field is field1

在 php 中,它会像这样完成:

$complete_field = $field1 == '' ? $field2 : $field1;

我如何在 PostgreSQL 中执行此操作?

我试过:

SELECT
(IF field1 = '' THEN field2 ELSE field1) AS complete_field
FROM
table

但它不起作用。

请帮助我 :) 谢谢

最佳答案

使用 CASE WHEN .. THEN .. ELSE .. END,例如:

SELECT 
(CASE WHEN (field1 IS NULL OR field1 = '') THEN field2 ELSE field1 END)
FROM table;

查看the official docs .

关于sql - PostgreSQL:选择两个字段之一,具体取决于哪个字段为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13723301/

相关文章:

sql - 如何着手优化 Oracle 查询?

java - 在实体类中定义一个不是列的变量

c - 如何使用 libpqtype 从插入返回 id

python - 打印语法错误

mysql - SQL语法错误/字符识别

sql - 如何使用 "like"查询 MongoDB

sql - 为什么遍历大型 Django QuerySet 会消耗大量内存?

sql - 使用哪个索引

postgresql - postgres - 来自 select 的内联变量赋值

mysql - 无法将字符串插入 MySQL 文本列