首页 > 解决方案 > 如何在postgresql中使用查询结果提供的数据添加新列

问题描述

我有列 data_of_birth 的表。我想创建查询,其中 0-10 之间的人将是 A,而 11-18 将是 B。这样的事情:

+-------+-----+-------+
| name  | age | class |
+-------+-----+-------+
| betty |   9 | A     |
| carl  |  12 | B     |
+-------+-----+-------+

问题是如何使用动态数据创建最后一列?

标签: sqlpostgresql

解决方案


正如 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 日期/时间函数的名称,所以这不是一个好的列名选择。


推荐阅读