2016-10-24 1 views

ответ

2

Выражение CASE может использовать более чем один столбец в логике, например,

CASE WHEN col1 > val1 AND col2 > val2 THEN 1 ELSE 0 END 

Но CASE выражения должны возвращение одно значение скаляра.

+0

Точно это то, что сработало для меня ... Большое спасибо за такую ​​подсказку ... Извините, что cann 't upvote ур ответить, поскольку у меня нет достаточной репутации .. :) – GSG

0

нет вы не можете, но вы можете использовать несколько, когда пункт заявление так:

select 
case when .... end col_a, 
case when .... end col_b 
from 
xxxx 
0

Конечно, вы можете. Например:

select ... 
from emp 
where case when bonus is null then salary else salary + bonus end > 4000 

Здесь emp представляет собой таблицу, и bonus и salary являются две из столбцов в этой таблице. То же предложение WHERE может быть выражено более просто, но независимо от переформулировки оно будет ссылаться на обе колонки. (И где-то будет какой-то СЛУЧАЙ - NVL и COALESCE - это выражения CASE с другим синтаксисом.)