【问题标题】:How can I sum a boolean column in HQL (NHibernate)?如何对 HQL (NHibernate) 中的布尔列求和?
【发布时间】:2012-01-18 21:16:03
【问题描述】:

我在后端 SQLite 中有一个表示为整数的列,但在 Nhibernate 映射中具有布尔解释。我希望我的 HQL 查询获得“真实”行的计数。在 SQL 中,它可以作为“SUM(BoolColumn)”正常工作,但 HQL 会将返回的值转换为布尔值。我不能使用 where 子句,因为我在 select 中有一些其他 COUNT(DISTINCT) 列,其中包括真行和假行。

【问题讨论】:

    标签: nhibernate hql


    【解决方案1】:

    由于 NH 认为它有点(无法汇总),您也许可以在 HQL 中执行类似的操作...

    sum(case when BoolColumn = 1 then 1 else 0 end)

    您是否定义了从 int 到 bool 的自定义映射,还是假设 int 仅为 1 或 0?

    【讨论】:

    • CASE 语法有效。没有自定义映射; POCO 属性是布尔值,SQLite 值始终为 1 或 0。谢谢。
    【解决方案2】:

    这对我有用:

    sum(case when BoolColumn = true then 1 else 0 end)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      • 2020-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多