【问题标题】:HQL: count null values in a collectionHQL:计算集合中的空值
【发布时间】:2012-06-08 15:03:06
【问题描述】:

我需要一个查询来计算某些实体 (Student) 的集合 (Student.absences) 中的空值 (Absence.excuse)。

到目前为止,我设法创建了这个查询:

SELECT s, SUM(CASE WHEN a.excuse IS NULL THEN 1 ELSE 0 END)
    FROM Student AS s 
LEFT JOIN s.absences a 
WHERE s.class = :class 
GROUP BY s
ORDER BY s.ordinal

这有效,但前提是学生已经在缺勤表中有一些缺勤(有或没有借口)。如果学生根本没有缺勤,则返回 1。但我不知道这怎么可能。如果没有缺席,它会将 a.excuse 评估为 NULL 吗?

感谢您的帮助。

【问题讨论】:

    标签: mysql sql hibernate hql


    【解决方案1】:

    试试

    SELECT s, SUM(CASE WHEN (a.excuse IS NULL and a.id IS NOT NULL) THEN 1 ELSE 0 END)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-19
      • 2019-12-20
      • 2022-01-18
      • 1970-01-01
      • 2010-11-09
      • 2018-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多