我们有一个查询:
SELECT *
FROM wo_hdr
WHERE tm_no LIKE CONCAT('%', $P{tm_no}, '%')
但是,当参数$P{tm_no}
为null时,我们需要返回所有值。
我看到其他人使用
SELECT *
FROM wo_hdr
WHERE tm_no is null or tm_no LIKE CONCAT('%', $P{tm_no}, '%')
这对我们不起作用,因为当$P{tm_no}
不为空时,当我们不想返回空值时。
有人知道对此有好的解决方案吗?我以为CASE语句可能会起作用,但是在WHERE子句中使用它会令人困惑。它需要同时使用ORACLE和SQL Server。
谢谢。
答案 0 :(得分:2)
只需使用以下命令修改您的where
子句:
SELECT *
FROM wo_hdr
WHERE ($P{tm_no} IS NULL OR tm_no LIKE CONCAT('%', $P{tm_no}, '%'));