我正在使用oracle查询。我卡在我的查询,这是非常类似于下面的代码/条件。我有多个条件,基于这些条件,具有多个值的条件应按如下方式传递。
条款:
第一季度
第二季度
上半场
MONTHS IN (CASE WHEN terms = 'First Quarter' THEN ('JAN','FEB','MAR')
WHEN terms = 'Second Quarter' THEN ('APR','MAY','JUN')
WHEN terms = 'First Half' THEN ('JAN','FEB','MAR','APR','MAY','JUN')
ELSE ('JUL','AUG','SEP','OCT','NOV','DEC')
END )
当我执行上述相同的查询时,错误消息显示为ora-00907-missing right paranthesis,我找不到原因。
请提供有关修复和性能方面的建议,因为我在原始查询中有多个条件。
提前谢谢。
2条答案
按热度按时间r7knjye21#
您可以使用布尔逻辑来描述您的条件,而不是
case
表达式:这可以缩短一点:
gab6jxml2#
这里有一个选择;第1-8行的样本数据。您可能感兴趣的查询从第9行开始。取决于你用什么工具,
'&&terms'
可能看起来与此不同(例如。:terms
). 这是sql*plus。而且,我用缩写代替了你的“四分之一”之类的东西(我不想打那么多)。--