我需要在SQL中将以下解码转换为Case语句。尝试了多种方式,但无法做到正确。
pre_tasks
答案 0 :(得分:2)
select case
when to_date(nullif(:dt,'%'),'mm/dd/yyyy') > A.column
then 0
else A.Amount
end
from A
答案 1 :(得分:0)
处理此类代码的最佳方法是删除它并找到原始要求。
我怀疑它就像
1)如果传递'%',则返回AMOUNT
2)如果AMOUNT
大于或等于参数
COLUMN
3)否则返回0
这导致以下CASE声明
select A."COLUMN",
case when :1 = '%' then A.Amount
when A."COLUMN" >= to_date(:2,'mm/dd/yyyy') then A.Amount
else 0 end as amount
from A;