sql 查询 return 特定记录的条件

Conditions on an sql query to return specific records

我正在创建一个 sql 查询,其中我有 3 个字段 --> NUMBER,COMPANY_NAME,END_DATE。 我想要做的是让用户选择是否输入 NUMBER 和 COMPANY...但是 END_DATE 必须是强制性的。但是,当我将 NUMBER 和 COMPANY 都留空,并且只输入 END_DATE 时,我没有收到任何记录。有帮助吗?

where L.NUMBER = $P{LEASE_NUMBER}
OR L.COMPANY_NAME = $P{COMPANY_NAME}
AND (L.END_DATE BETWEEN $P{DateFrom} AND $P{DateTo}
OR $X{EQUAL, L.END_DATE, dateRange})

我认为这更接近您要寻找的逻辑:

where (L.NUMBER = $P{LEASE_NUMBER} OR $P{LEASE_NUMBER} IS NULL) and
      (L.COMPANY_NAME = $P{COMPANY_NAME} OR $P{COMPANY_NAME} IS NULL) and
      (L.END_DATE BETWEEN $P{DateFrom} AND $P{DateTo} OR
       $X{EQUAL, L.END_DATE, dateRange}
      )

我对时间的表达不太确定。你的问题没有解释 DateFrom.

这可能有效

WHERE (L.NUMBER       = $P{LEASE_NUMBER} OR $P{LEASE_NUMBER} = '')
  AND (L.COMPANY_NAME = $P{COMPANY_NAME} OR $P{COMPANY_NAME} = '')
  AND L.END_DATE >= $P{DateFrom} AND L.END_DATE <= $P{DateTo}