sql - 使用 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”列中显示该信息。
解决方案
使用case
. 像这样的东西:
select lot, partnum, amount,
(case when Finished = 1 then 'Finished'
when IsInspected = 1 then 'Inspected'
when IsPainted = 1 then 'Painted'
) as status
这将选择最后一个布尔值作为为状态选择的布尔值。
推荐阅读
- assembly - 存储指令是否会像加载一样产生危险?
- sed - 根据条件删除块的内容
- html - CSS问题:绝对路径不适用于背景图像
- c# - SqlDependency.Start 在 Unity 中不起作用?
- javascript - 如何通过javascript为单选按钮赋予标题
- activerecord - 在 yii2 中查询一个 redis 模型
- html - Top App Bar和Drawer如何结合?
- r - 在 R 中捕获字符向量的“内部切片”
- spring-data-jpa - Spring JPA:当我不知道总页数时,如何获取对象的最后一页
- javascript - 如何创建一个部分以显示博客上特定标签的最新帖子?