Как установить больше чем 2 Выражения в Выражении. Или

Случайное выражение прекращает оценивать термины, как только находит совпадение. Поэтому я думаю, что вы задаете не тот вопрос. Не похоже, что вам действительно нужно выражение падежа.

Из ваших выборочных данных и результатов вы, кажется, хотите получить агрегат, используя first , что-то вроде:

select dt1.company_id,
  max(dt1.unique_entry_id)
    keep (dense_rank first order by dt1.rating_number) as unique_entry_id
from comp_results dt1
group by dt1.company_id;

COMPANY_ID           UNIQUE_ENTRY_ID     
-------------------- --------------------
Org00001             ENTRY_C1_1          
Org00002             ENTRY_C2_2          
Org00003             ENTRY_C3_3          

Это все равно оценивает каждую строку, но затем агрегирует и сохраняет тот, который имеет самый низкий rating_number - который соответствует порядку приоритета, который вы хотите.

db <> fiddle

После вашего редактирования, если номера рейтинга не в числовом порядке, вы можете добавить выражение случая обратно в предложение order by, чтобы указать желаемый порядок:

select dt1.company_id,
  max(dt1.unique_entry_id) keep (dense_rank first
    order by case dt1.rating_number
             when 2 then 1
             when 1 then 2
             when 3 then 3
      end) as unique_entry_id
from comp_results dt1
group by dt1.company_id;

Обновлен db <> fiddle

8
задан Barbaros Alp 12 January 2009 в 00:51
поделиться

2 ответа

Используйте Разъединение вместо Или.

8
ответ дан 5 December 2019 в 17:42
поделиться

Вы также можете использовать || вместо Or () или Disjunction ().

2
ответ дан 5 December 2019 в 17:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: