【问题标题】:How to get one value from two columns如何从两列中获取一个值
【发布时间】:2020-06-26 10:25:54
【问题描述】:

我有这个:

column1 column2 column3
=======================  
1. A;    null;    E  
2. Z;     B;    null 

我想得到这两行但对于第一行我得到 column2 的值,如果不是 null 否则我得到 column3 的值 第二行的一些逻辑。
所以结果是: (A;E) 和 (Z;B)

    JPAQuery query = new JPAQuery(entityManager);
    QSubject subject = QSubject.subject;
    BooleanExpression conditions = subject.id.eq(id);
    return query.from(subject).where(conditions)
            .list(subject.title,subject.dateModif,subject.dateCreation);  

如果 dateModif 为 null 我想要什么我想要 dateCreation。

我认为在 sql 中有 coalesce 在这种情况下使用,但我不知道如何在 java 中使用 openjpa;

【问题讨论】:

  • 添加您的代码示例

标签: java sql jpa openjpa


【解决方案1】:

使用coalesce():

select column1, coalesce(column2, column3) as column2
from t;

此函数接受多个参数并返回第一个非NULL 值。

【讨论】:

  • 您也可以在类型化查询中使用它: entityManager.createQuery("select coalesce(table.column2, table.column3) from table", String.class);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
  • 1970-01-01
  • 2015-12-28
  • 2021-08-17
  • 2014-09-14
  • 1970-01-01
相关资源
最近更新 更多