【发布时间】:2019-10-28 12:38:04
【问题描述】:
我有一个包含旅行模式布尔值的表格,如下所示:
SELECT * FROM survey;
+----+-------+-------+-------+-------+
| id | bike | car | bus | metro |
+----+-------+-------+-------+-------+
| 49 | false | false | true | false |
| 51 | false | true | false | false |
| 52 | false | false | false | true |
| 53 | false | true | false | false |
+----+-------+-------+-------+-------+
那么我只想选择值为true的模式,这样最终的结果是:
+----+-------+
| id | mode |
+----+-------+
| 49 | bus |
| 51 | car |
| 52 | metro |
| 53 | car |
+----+-------+
请问我是怎么做到的?
【问题讨论】:
-
如果给定行的多个列具有真值怎么办?
-
我可以确认没有两列具有相同记录的
true值,因为调查只允许用户选择一种旅行模式。 -
看起来像一个非常糟糕的数据模型。制作这两张表:一张用于出行方式,一张用于调查。调查表将包含一个引用相关出行模式行的列(例如 id_travelmode)。您正在查找的查询将成为两个表的单纯连接。
标签: sql postgresql select