2016-06-22 3 views
0

Можем ли мы использовать корпус переключателя для фильтрации столбцов таблицы таким образом?Использование переключателя для выбора столбцов и фильтра

select distinct stud.name, stud.num, 
     case WHEN stud.sub like '%data%'   THEN stud.sub 
      WHEN stud.sub like '%informatics%'  THEN stud.sub 
      WHEN stud.sub like '%genomics%'  THEN stud.sub 
                ELSE '---' 
     END 
from table_A 

Ожидаемый результат

Name ID  Sub 

victor 2098 ----- 
Lui  6754 Bioinformatics 
Willis 7653 Advanceddatascience 

Спасибо!

+1

postgresql? оракул? –

+0

есть ли у вас какие-либо ошибки? вы попробовали? –

+0

Возможный дубликат [Как использовать условие SQL LIKE с несколькими значениями в PostgreSQL?] (Http://stackoverflow.com/questions/12957993/how-to-use-sql-like-condition-with-multiple-values-in -postgresql) –

ответ

0

Да, ваш запрос должен работать. Если вы хотите попробовать что-то другое, это должно работать в Oracle. Легко изменить его на любую другую СУБД. Также легко добавить любой другой предмет.

With aux as (select '%data%' as auxText from dual union all 
       select '%informatics%' as auxText from dual union all    
       select '%genomics%' as auxText from dual) 
select distinct stud.name, stud.num, 
     nvl(stud.sub,'---') as sub 
from table_A left join aux on table_A.sub like aux.auxText; 
Смежные вопросы