Третий столбец зависит от первых двух столбцов (SQL) - PullRequest
0 голосов
/ 28 апреля 2020

В браузере БД для SQLite, если у меня есть два столбца, results1 и results2, каждый из которых может иметь «pass» или «fail» (или пусто (в столбце, как я могу создать третий столбец с названием results_final, который возвращает «pass», если и result1, и results2 имели «pass» в одной строке, или возвращает «fail», если это была какая-либо другая комбинация? Поэтому, по сути, пытаетесь использовать CASE WHEN, но с условиями в двух разных столбцах. В Excel я мог бы просто сделать формулу вида = IF (AND (pass, pass), "pass", "fail"), но что я могу сделать здесь?

1 Ответ

0 голосов
/ 28 апреля 2020

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

select 
    t.*, 
    case when result1 = 'pass' and result2 = 'pass' 
        then 'pass' 
        else 'fail' 
    end result3
from mytable t

Неясно, действительно ли вы хотите создать новый столбец для хранения этого значения; Я бы не советовал хранить эту информацию. Для этого вы можете использовать представление или сгенерированный виртуальный столбец:

alter table add column column3 text as (
    case when result1 = 'pass' and result2 = 'pass' 
        then 'pass' 
        else 'fail' 
    end) virtual
...