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}
我正在创建一个 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}