sql oracle в предложении ()

#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

ключевым моментом здесь является изменение с «простых выражений регистра» на «искомое выражение регистра»