首页 > 解决方案 > 使用 IF 语句为条目拉取布尔列标题

问题描述

我对 IF 语句一点也不擅长。我目前有一个看起来像这样的时间表:

Lot(Int) PartNum(Varchar50) Amount(Int) IsPainted(Bool) IsInspected(Bool) Finished(Bool)
1         xxx-0191          500          1               1                 0
2         xxx-0191          700          1               0                 0

我正在努力完成的工作,并且我认为它必须由 IF 语句处理,但我当然愿意在这里使用最有效的方法,即有一个查询可以为我提供以下信息

Lot  PartNum  Amount  Status
1    xxx-0191 500     Inspected
2    xxx-0191 700     Painted

我需要它做的只是在布尔列中拉出最后一个可用的“True”或“1”列,然后在查询的“Status”列中显示该信息。

标签: sqlif-statementboolean

解决方案


使用case. 像这样的东西:

select lot, partnum, amount,
       (case when Finished = 1 then 'Finished' 
             when IsInspected = 1 then 'Inspected'
             when IsPainted  = 1 then 'Painted' 
       ) as status

这将选择最后一个布尔值作为为状态选择的布尔值。


推荐阅读