Если заявление внутри, выберите предложение (postgresql) - PullRequest
0 голосов
/ 11 мая 2018

Я хочу установить 0 или 1 флаг на основе значения столбца. Если значение> 0,0 И <= 99,0, затем 1, иначе 0. </p>

              Score         flag_score

              0.083642      1
              0.009542      1
              0.999999      1
              101.0000      0

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Я бы написал это просто:

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;
0 голосов
/ 11 мая 2018

Вы пробовали case выражение?

select *, 
        (case when value > 0.0 and value <= 99.0 then 1 else 0 end) flag_score
from table;
...