sql - ( CASE WHEN [date] IS NULL THEN 0 ELSE 1 END)在我的枢轴中不起作用

标签 sql sql-server tsql pivot isnull

我编写了以下代码,期望在 CASES 中返回 0 和 1,但我得到的是 1 和 NULL。

有什么获取 0 的建议吗?

DECLARE @Today DATETIME

SET @Today = FLOOR(CAST(GETDATE() AS FLOAT))

SELECT*

FROM 
    (   SELECT e.[Employeenr],
           e.[Name],
           dc.[Code],
           c.[Description],
           (CASE WHEN ec.[date] IS NULL THEN 0 ELSE 1 END) as 'Date',
           (CASE WHEN dc.[creationdate] IS NULL THEN 0 ELSE 1 END) as 'Aanwezig'
FROM HR_Employee e
        left join HR_EmployeeDriverLicense d ON e.[Employeenr] = d.[Employee]
        left join DriverLicenseCategory dc ON d.[DriverLicenseCategory] = dc. 
        [DriverLicenseCategorynr]
        left join HR_EmployeeCertificate ec ON e.[Employeenr] = ec.[Employee]
        left join HR_Certificate c ON ec.[Certificate] = c.[Certificatenr]
        left join HR_Function f ON e.[Function] = f.[Functionnr]

     WHERE (e.[Date_out_of_employment] IS NULL 
        or e.[Date_out_of_employment] >= @today 
        or e.[Licensenumber] is not null) 
        and e.[LicenseExpireDate] is not null 
        and c.[Description] is not null 
        and ec.[Certificate] <> 5 
        and f.[Functionnr] = 1

 ) AS SRC 
 PIVOT
 ( MAX(Aanwezig) 
  FOR [Code] IN ([C], [C1], [C1E], [CE])) AS PivotTable 

  PIVOT
 ( MAX ([Date]) 
    FOR [Description] IN ([Kooiaap certificaat], [ADR Certificaat])) AS PivotTable 

最佳答案

当您执行 PIVOT 时,您将得到行的 NULL,这些行没有相应 PIVOT 列的值。不幸的是,如果你想得到 0 而不是 NULL,你需要在最后的 SELECT 语句中添加这个逻辑。

像这样:

SELECT ISNULL([Kooiaap certificaat], 0), ISNULL([ADR Certificaat], 0)

关于sql - ( CASE WHEN [date] IS NULL THEN 0 ELSE 1 END)在我的枢轴中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63408029/

相关文章:

SQL:如果我的最大值是 255,使用 tinyint 而不是 Integer 是否有效?

sql - 为什么我在 SQL Server 'in' 子句中出现语法错误?

sql - 获取最旧的日期 SQL 复杂性

sql - 数据库存储多字段数据的当前和编辑历史的模式

mysql - 如何循环访问同一个表中的值?

sql - 如何在不访问显示计划的情况下优化 SQL 查询?

sql-server - SQL 中的逗号分隔结果

sql - 基本的 T-SQL 问题

mysql - 如何更新 mysql 文件中指定的用户?

mysql - 当用户 id 没有出现在另一个表中时的 sql 条件