sql - 如何在postgresql中使用查询结果提供的数据添加新列
问题描述
我有列 data_of_birth 的表。我想创建查询,其中 0-10 之间的人将是 A,而 11-18 将是 B。这样的事情:
+-------+-----+-------+
| name | age | class |
+-------+-----+-------+
| betty | 9 | A |
| carl | 12 | B |
+-------+-----+-------+
问题是如何使用动态数据创建最后一列?
解决方案
正如 Gordon Linoff 所暗示的,您可以使用case
表达式:
select
name,
age,
case
when age between 0 and 10 then 'A'
when age between 11 and 18 then 'B'
else '?'
end class
from mytable
注意:age
是内置 Postgres 日期/时间函数的名称,所以这不是一个好的列名选择。
推荐阅读
- csv - 工作表上的 IMPORTDATA() 不适用于驱动器或谷歌存储桶中的文件
- r - 在R中平凡地加入两列
- javascript - Adobe 中的可填写 PDF:用于跨多个连接字段的退格的 Javascript 代码?
- r - 由于先前在编译 R 时出现错误,Rstudio 无法启动“无法确定 R 脚本的真实路径”
- statuspage-api - {"error":"incident is missing"} 使用 PATCH 或 PUT 更新事件时
- powershell - Powershell - 如果满足条件,则替换 .txt 中的行
- scala - akka.http.scaladsl.model.ParsingException:使用 akka http 将大文件上传到 S3 时,多部分实体意外结束
- ios - 使用 CocoaPods 和 SwiftPM 实现的 FBLPromise 崩溃
- vba - 如何在多列表框中正确添加项目?
- java - Java 扩展 Java 类并覆盖它们的方法