在 PostgreSQL 中创建临时列
Creating Temporary Columns in PostgreSQL
我有一个 table 具有以下内容:
| Customer | Order Count|
-----------------------
| 1 | 1 |
| 2 | 2 |
| 3 | 1 |
并且我想创建一个额外的列,所以我最终得到以下内容:
| Customer | Order Count| Status |
--------------------------------
| 1 | 1 | new |
| 2 | 2 | old |
| 3 | 1 | new |
我该如何构造我的查询才能这样做?
编辑:状态标签的逻辑是新客户只有一个订单,老客户有> 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
;
我有一个 table 具有以下内容:
| Customer | Order Count|
-----------------------
| 1 | 1 |
| 2 | 2 |
| 3 | 1 |
并且我想创建一个额外的列,所以我最终得到以下内容:
| Customer | Order Count| Status |
--------------------------------
| 1 | 1 | new |
| 2 | 2 | old |
| 3 | 1 | new |
我该如何构造我的查询才能这样做?
编辑:状态标签的逻辑是新客户只有一个订单,老客户有> 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
;