Java postgreSQL中的IIF,如果没有输入,则返回所有记录

Java postgreSQL中的IIF,如果没有输入,则返回所有记录,java,postgresql,Java,Postgresql,所以基本上我在java中使用一个mapper类,它连接到PostgreSQL数据库 "Where ABC = #{Parameter}" 这就是我现在用来返回选择性记录的方法,如果没有传递参数,如何获取所有记录?这是一种常见的模式。只要您的where标准以书面形式通过,并且ABC是一个列名,这应该可以工作: where ABC = coalesce(#{parameter}, ABC) 它不会返回ABC为null的行。为此,您需要: where ( (ABC

所以基本上我在java中使用一个mapper类,它连接到PostgreSQL数据库

"Where ABC = #{Parameter}"

这就是我现在用来返回选择性记录的方法,如果没有传递参数,如何获取所有记录?

这是一种常见的模式。只要您的
where
标准以书面形式通过,并且
ABC
是一个列名,这应该可以工作:

  where ABC = coalesce(#{parameter}, ABC)
它不会返回
ABC
null
的行。为此,您需要:

  where (   (ABC = coalesce(#{parameter}, ABC)
         or (ABC is null and #{parameter} is null))
如果ABC=CASE当#{Parameter}为空,那么ABC ELSE#{Parameter}END在任何意义上都可以使用吗?