0

在 SQLite 的 DB 浏览器中,如果我有两列 results1 和 results2,每列都可以有“通过”或“失败”(或空白(在列中,我如何创建名为 results_final 的第三列,它返回“通过" 如果 results1 和 results2 在同一行中都有“通过”,或者如果是任何其他组合则返回“失败”?所以基本上尝试使用 CASE WHEN 但条件在两个不同的列中。这可能吗?在 Excel 中,我可以做一个 =IF(AND(pass,pass), "pass", "fail") 之类的公式,但我能在这里做什么?

4

1 回答 1

0

您可以使用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
于 2020-04-27T21:52:03.733 回答