根据 case 语句中的现有列创建一个新列

时间:2021-07-26 19:51:06

标签: sql sql-server tsql

假设我有这张桌子 t

  id value
1  1    10
2  2     3
3  1    55
4  1    20
5  2    98

当从 t 绘制时,我想在 value2 时添加一个等于 value 的列 id == 2,否则为 0

我试过了

select id, value, max(case when id = 2 then value else 0) from t

但是没有用

2 个答案:

答案 0 :(得分:2)

不确定为什么您在尝试中包含了 max,但根据您的描述,这就是您所需要的。

select id, value, case when id = 2 then value else 0 end as value2
from t;

答案 1 :(得分:-1)

听起来你想要一个条件窗口聚合:

select
  id,
  value,
  max(case when id = 2 then value end) over ()
from t;
相关问题