Dig*_*ter 4 sql postgresql postgresql-9.5
说我有这样一张桌子:
table messages
id | show_message | message
3 | false | "some message"
4 | true | "another message"
Run Code Online (Sandbox Code Playgroud)
我想只在列为show_messagetrue 时才选择消息列,但我也想以任一方式选择show message列.子查询是否适合该场景?我觉得我在想这个.我正在使用Postgres 9.5
简单case怎么样?
select id, show_message, (case when show_message then message end) as message
from t;
Run Code Online (Sandbox Code Playgroud)
这将在结果集NULL的message列中为未显示的消息添加值.
SQL查询返回一组固定的列.因此,这是您使用单个查询所能做到的最好的事情.如果你真的想要一个有时有两列但有时有三列的结果集,那么就需要某种条件逻辑或动态SQL.
| 归档时间: |
|
| 查看次数: |
5314 次 |
| 最近记录: |