0
如何在我的case语句中检查多个事项而不写多行,检查每个案例。检查CASE语句中的多个值
我试过这个,它很丑陋。
我想要下面的东西干净,但不能使其工作。
select CASE
WHEN (UPPER(NAME) IN ('%AVG%', '%AVERAGE%') AND
FORMATTED_ENTRY NOT IN('<', '>'))
THEN FORMATTED_ENTRY END actual_avg
FROM VALUES_TABLE
没有像他们必须是独立的IN内你不能做一个通配符%。然而,这可能会使用正则表达式。 http://docs.oracle.com/cd/B12037_01/appdev.101/b10795/adfns_re.htm – xQbert
为什么没有这种方法的工作 - 你得到一个错误,或错误的结果?你显示的内容看起来不错,除了你在'IN'中使用通配符 - 你用'OR'代替。也许显示你的'多行'版本将澄清你遇到的问题? –
是的,你不能在'IN'子句中使用通配符('%'),但你可以做的是使用'regexp_like()'正则表达式函数(Oracle 10g及以上)。 [这是一个小例子](http://sqlfiddle.com/#!4/d41d8/31649)。 –