Exact online 在单例语句中组合多个条件
Invantive SQL是否在单个case语句中支持多个条件?我在下面的声明中没有得到任何结果。仅使用1个条件no cascade尝试了相同的语句,这检索到了预期的结果Exact online 在单例语句中组合多个条件,exact-online,invantive-sql,invantive-control,invantive-query-tool,Exact Online,Invantive Sql,Invantive Control,Invantive Query Tool,Invantive SQL是否在单个case语句中支持多个条件?我在下面的声明中没有得到任何结果。仅使用1个条件no cascade尝试了相同的语句,这检索到了预期的结果 select prj.code , prj.startdate , prj.enddate from exactonlinerest..projects prj where prj.code between $P{P_PROJECT_FROM} and $P{P_PROJ
select prj.code
, prj.startdate
, prj.enddate
from exactonlinerest..projects prj
where prj.code between $P{P_PROJECT_FROM} and $P{P_PROJECT_TO}
and case
/* when (prj.enddate is null or prj.enddate >= sysdate)
then 'Y'
when (prj.enddate is not null and prj.enddate <= sysdate)
then 'N' */
when prj.startdate <= sysdate
then 'B'
end
= $P{P_PROJECT_ACTIVE_FROM}
我认为你们的where条款表述不正确。使用Exact Online,项目可以: 选项1:无结束日期, 选项2:过去的结束日期 选项3:或未来的结束日期 案例的第一部分处理选项1和选项3。第二部分处理选项2。因此,在这种情况下,永远不会出现“B”的结果 要分析此类问题,我建议在select子句中包含该案例并删除过滤器。这会让你看到可能的结果 例如:
use 868056,102673
select prj.division
, prj.code
, prj.startdate
, prj.enddate
, case
when prj.enddate is null or prj.enddate >= sysdate
then 'Y'
when prj.enddate is not null and prj.enddate <= sysdate
then 'N'
when prj.startdate <= sysdate
then 'B'
end
indicator
from exactonlinerest..projects prj
where prj.code between $P{P_PROJECT_FROM} and $P{P_PROJECT_TO}
我认为你们的where条款表述不正确。使用Exact Online,项目可以: 选项1:无结束日期, 选项2:过去的结束日期 选项3:或未来的结束日期 案例的第一部分处理选项1和选项3。第二部分处理选项2。因此,在这种情况下,永远不会出现“B”的结果 要分析此类问题,我建议在select子句中包含该案例并删除过滤器。这会让你看到可能的结果 例如:
use 868056,102673
select prj.division
, prj.code
, prj.startdate
, prj.enddate
, case
when prj.enddate is null or prj.enddate >= sysdate
then 'Y'
when prj.enddate is not null and prj.enddate <= sysdate
then 'N'
when prj.startdate <= sysdate
then 'B'
end
indicator
from exactonlinerest..projects prj
where prj.code between $P{P_PROJECT_FROM} and $P{P_PROJECT_TO}