我试图在查询的 select 语句上实现某种逻辑。我想要它,如果没有给出属性,或者如果 inAttribute 是'NONE';它将返回日期和所有值(compprice、compspread、price、spread、run)。
如果在属性中给出了一个值,那么我希望它返回它请求的值(请参阅我尝试做的案例声明)。
下面是我的尝试,它只是不工作。请问有什么帮助吗?
SELECT
mi.date,
IF inAttribute = '' THEN
mi.compprice,
mi.compspread,
mi.price,
mi.spread,
mi.run
ELSE
CASE inAttribute
WHEN 'CP' THEN mi.compprice,
WHEN 'CS THEN mi.compspread,
WHEN 'MP' THEN mi.price,
WHEN 'MS' THEN mi.spread,
WHEN 'R' THEN mi.run
END
END IF
FROM userValueTable mi
WHERE mi.index_family = inIdxFamily
AND mi.index_id = inIdxId
AND mi.date_>= inStartDate
AND mi.date_<= inEndDate
ORDER by mi.date_ ASC;