PostgreSQL - select语句中的if子句

时间:2017-08-30 10:03:38

标签: sql postgresql

我有以下sql查询:

SELECT nickname, name from users;

有些用户有姓名但没有昵称,有些用户有昵称但没有姓名。我想有sql查询,检查用户是否有现在的名字或昵称,只返回当前的名称。以下是结果的样子:

Name
-------------
user_1_nickname
user_2_name
user_3_nickname
user_4_name

在PostgreSQL中有没有办法做到这一点?

2 个答案:

答案 0 :(得分:3)

使用coalesce?

select coalesce(name, nickname) -- this prioritises name over nickname
from users;

答案 1 :(得分:2)

尝试使用coalesce。这可能就是你所需要的。

Coalesce返回列表中的第一个非null参数,因此您可以执行以下操作:

coalesce(nickname, name)然后昵称为null,返回名称。

https://www.postgresql.org/docs/current/static/functions-conditional.html