【问题标题】:Creating Temporary Columns in PostgreSQL在 PostgreSQL 中创建临时列
【发布时间】:2020-12-08 22:05:15
【问题描述】:

我有一张桌子,上面有以下内容:

| Customer | Order Count|
 -----------------------
|     1    |      1     |
|     2    |      2     |
|     3    |      1     |

我想创建一个额外的列,所以我最终得到以下内容:

| Customer | Order Count| Status |
 --------------------------------
|     1    |      1     |  new   |
|     2    |      2     |  old   |
|     3    |      1     |  new   |

我该如何构建我的查询?

编辑:状态标签的逻辑是新客户只有一个订单,而老客户有> 1

【问题讨论】:

  • 那么status的逻辑是什么?

标签: sql postgresql case generated-columns


【解决方案1】:

假设1 表示“新”,2 表示“旧”,您可以使用case 表达式:

select t.*, 
    case order_count 
        when 1 then 'new' 
        when 2 then 'old'
        else '??'
    end as status
from mytable t

或者,如果你想创建一个计算列:

alter table mytable 
    add column status varchar(10)
    generated always as (
        case order_count 
            when 1 then 'new' 
            when 2 then 'old'
            else '??'
        end 
    )
    stored
;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-26
    • 2012-04-23
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 2021-02-24
    • 1970-01-01
    相关资源
    最近更新 更多