2016-10-21 5 views
3

Возможно ли использовать предложение in() в редакции case.. when ...the в выражении условия запроса sql.sql oracle in() статья

им мой случай запроса очень длинный:

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 ID предполагается использовать в выражении условия: таким образом, запрос будет очень брют.

ответ

2

Можно .Please см ниже фрагмент кода

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 
4

Да, вы можете:

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 
...