sql - IIF 与 ISNULL?
问题描述
SELECT first_name, last_name
(SELECT ISNULL(IIF(getdate() between vacation_start and vacation_end, 1, 0),0) from vacatoin_request where mat_emp = W.mat_emp) as is_on_vacation,
(SELECT ISNULL(IIF(getdate() between mission_start and mission_end, 1, 0),0) from mission_order where mat_emp = W.mat_emp) as is_on_mission
FROM
workers W
IIF 工作正常,但是当我添加 ISNULL 时,如果该工作人员在其他表中没有休假请求或任务订单,它仍然返回 null。
解决方案
问题是选择返回 NULL 所以ISNULL
需要在选择之外
SELECT first_name, last_name
ISNULL((SELECT TOP 1 IIF(getdate() between vacation_start and vacation_end, 1, 0) from vacatoin_request where mat_emp = W.mat_emp),0) as is_on_vacation,
ISNULL((SELECT TOP 1 IIF(getdate() between mission_start and mission_end, 1, 0) from mission_order where mat_emp = W.mat_emp),0) as is_on_mission
FROM
workers W
推荐阅读
- c# - 在同一应用程序的多个 OData 上下文中路由具有相同名称的控制器
- excel - 从多个 excel 文件的每张表中复制相同的单元格
- sql-server - 用常规序列替换 MSSQL 自动增量标识
- python - API id - 将 id 转换为整数
- xml - 在 XSLT/XPath 中将 xpath xml 元素的联合表示为公共父级的子级
- c# - 序列化和反序列化对象集合
- f# - 如何在 XPlot.GoogleCharts Treemap (F#) 中生成自定义工具提示?
- weather - 如何在 NixOS 中将天气添加到 i3status
- arrays - 意外的数组大小
- core-data - List 中的 ForEach 出现 SwiftUI 错误:无法使用类型为“(@escaping()...)的参数列表调用类型“List”的初始化程序(参见代码)