有条件地 select postgres 中的一列 SQL
Conditionally select a column in postgres SQL
说我有一个 table 这样的:
table messages
id | show_message | message
3 | false | "some message"
4 | true | "another message"
如果 show_message
列为真,我只想 select 消息列,但我也想 select 显示消息列。在场景中子查询会是 suitable 吗?我觉得我想多了。我正在使用 Postgres 9.5
简单的 case 怎么样?
select id, show_message, (case when show_message then message end) as message
from t;
这将在结果集中的 message
列中为未显示的消息放置一个 NULL
值。
SQL 查询 return 一组固定的列。因此,这是您可以对单个查询执行的最佳操作。如果你真的想要一个有时有两列有时有三列的结果集,那么就需要某种条件逻辑或动态 SQL。
说我有一个 table 这样的:
table messages
id | show_message | message
3 | false | "some message"
4 | true | "another message"
如果 show_message
列为真,我只想 select 消息列,但我也想 select 显示消息列。在场景中子查询会是 suitable 吗?我觉得我想多了。我正在使用 Postgres 9.5
简单的 case 怎么样?
select id, show_message, (case when show_message then message end) as message
from t;
这将在结果集中的 message
列中为未显示的消息放置一个 NULL
值。
SQL 查询 return 一组固定的列。因此,这是您可以对单个查询执行的最佳操作。如果你真的想要一个有时有两列有时有三列的结果集,那么就需要某种条件逻辑或动态 SQL。