我想根据列值设置0或1标志。如果值为> 0.0 AND< = 99.0然后是1,否则为0。
Score flag_score
0.083642 1
0.009542 1
0.999999 1
101.0000 0
答案 0 :(得分:3)
您是否尝试过case
表达式?
select *,
(case when value > 0.0 and value <= 99.0 then 1 else 0 end) flag_score
from table;
答案 1 :(得分:1)
我会把它写成:
select t.*, ( (value > 0.0) and (value <= 99.0) )::int as flag_score
from t;
Postgres有一个很好的速记来声明标志,因此不需要case
个表达式。
如果您想实际设置该值,您可以执行以下操作:
update t
set flag = ( (value > 0.0) and (value <= 99.0) )::int;