从PostgreSQL中的两列中选择第一个非空单元格

Jiv*_*van 1 sql postgresql

从这样一个表:

id   name      alias
0    John      Null
1    Null      Paul
2    Null      George
3    Ringo     Null
4    Pete      Pete
Run Code Online (Sandbox Code Playgroud)

如何在列namealias列之间选择第一个非Null值,并将其放入自己的results字段中,以便输出为:

id   result
0    John
1    Paul
2    George
3    Ringo
4    Pete
Run Code Online (Sandbox Code Playgroud)

小智 5

你基本上是在描述这个COALESCE功能:

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

在你的情况下:

SELECT id, COALESCE(name, alias) AS result FROM yourtable;
Run Code Online (Sandbox Code Playgroud)