我做这个JPQL查询
SELECT e
FROM Expediente e
WHERE e.fechaBaja is null
ORDER BY e.idSituacion ASC,
e.idExpediente ASC
但是当e.idSituacion
为null时,eclipseLink不会返回此注册表。
如何使用oracle函数nvl
执行此查询? EclipseLink 2.1.3是否支持此功能?
SELECT nvl(e.idSituacion,' ')
FROM Expediente e
WHERE e.fechaBaja is null
ORDER BY e.idSituacion ASC,
e.idExpediente ASC
或
SELECT e
FROM Expediente e
WHERE e.fechaBaja is null
and nvl(e.idSituacion,' ')
ORDER BY e.idSituacion ASC,
e.idExpediente ASC
谢谢。
答案 0 :(得分:9)
<强> COALESCE 强>
我并不完全了解它对您有何帮助,但您可以使用COALESCE
函数:http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL#Functions
(这类似于NVL
,但NVL
是特定于Oracle的,COALESCE
是ANSI标准。)
<强>顺序强>
ORDER BY e.idSituacion ASC
空值将在结果的末尾。
如果您想先获得空值,可以使用NULLS FIRST
子句:
ORDER BY e.idSituacion ASC NULLS FIRST
(仅限Eclipselink 2.4)
答案 1 :(得分:0)