#sql #oracle #if-statement
#sql #Oracle #if-оператор
Вопрос:
Возможно ли использовать конструкцию in()
предложения in case.. when ...the
в выражении условия запроса sql.
в моем случае запрос очень длинный:
select r.insurance_package_id,r.name,
max(case r.insurance_package_id when 6 then r.name
when 7 then r.name
when 8 then r.name
when 9 then r.name
when 10 then r.name
when 11 then r.name
when 12 then r.name
when 14 then r.name
when 42 then r.name
when 44 then r.name
when 7 then r.name
end) CPI_Life
в выражении условия предполагается использовать около 200 идентификаторов: таким образом, запрос был бы очень грубым.
Ответ №1:
Да, вы можете:
SELECT r.insurance_package_id,
r.name,
MAX(CASE
WHEN r.insurance_package_id IN (6,7,8,9,10,11,12,14,42,44,7) THEN r.name
END) CPI_Life
...
Ответ №2:
Это возможно .Пожалуйста, обратитесь к приведенному ниже фрагменту
SELECT r.insurance_package_id
,r.NAME
,max(CASE
WHEN r.insurance_package_id IN (
6
,7
,8
,9
,10
,11
,12
,14
,42
,44
,7
)
THEN r.NAME
END) CPI_Life
Ответ №3:
я просто добавлю ссылку на документацию по делуhttp://docs.oracle.com/cd/B19306_01/server.102/b14200/expressions004.htm
ключевым моментом здесь является изменение с «простых выражений регистра» на «искомое выражение регистра»