Как установить нулевое значение на основе второго значения в той же строке в SQL? - PullRequest
0 голосов
/ 14 апреля 2020

Если у меня есть следующие данные:

    ID        weight         height       bmi
    1         200              70          12 
    1         200                          12

Я хочу установить ИМТ на ноль, где нет высоты. Я не хочу устанавливать для целого столбца значение NULL, только строки с высотой NULL
Мой желаемый результат будет:

   ID        weight          height       bmi
   1          200              70          12
   1          200                             

Спасибо.

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

Если вы не хотите изменять данные, используйте выражение case:

select id, weight, height,
       (case when height is not null then bmi end) as bmi
from t;
1 голос
/ 14 апреля 2020

Вы можете попробовать следующее обновление:

UPDATE yourTable
SET bmi = NULL
WHERE height IS NULL;
...