如何在HQL中模拟NVL
我尝试了这个:
from Table where (:par1 is null or col1 = :par1)
但是碰巧
from Table where :par1 is null
即使:par1不为null,也总是返回表的所有行。
而
select * from table where col1 = 'asdf'
不返回任何行。
我不能使用本机语法,因为我的应用程序应该在不同的数据库引擎上运行
回答:
nvl
HQL中的coalesce
命令等效于该命令。 如果不为null,则coalesce(a,b)
返回,否则返回。a``a``b
因此,您需要以下方面的东西:
from Table where col1 = coalesce(:par1, 'asdf')
以上是 如何在HQL中模拟NVL 的全部内容, 来源链接: utcz.com/qa/415493.html