2017-08-30 46 views
0

私は、次のSQLクエリがあります。PostgreSQLの - 場合は、SELECT文のFROM句

SELECT nickname, name from users; 

一部のユーザーが名前を持っていますが、ニックネームを持っていないと、いくつかのニックネームを持っていますが、名前を表示できません。私は、ユーザーが現在の名前またはニックネームを持っているかどうかをチェックし、現在の名前またはニックネームのみを返すSQLクエリを実行したい。結果は次のようになります。

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

PostgreSQLでこれを行う方法はありますか?

+0

ユーザはどちらを選択するのですか? – jarlh

答えて

3

合体を使用しますか?

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

​​3210で試してください。それはあなたが必要とするものかもしれません。

coalesce(nickname, name)とニックネームがnullであるところ、その後、名前が返されます。あなたのような何かを行うことができますので、

Coalesceは、リスト内の最初のNULLでない引数を返します。

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

関連する問題