2016-06-22 20 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

可能的重复[如何在PostgreSQL中使用SQL LIKE条件和多个值?](http://stackoverflow.com/questions/12957993/how-to-use-sql-like-condition-with-multiple-values-in -postgresql) –

回答

0

是的,你的查询应该可以工作。如果你想尝试一些不同的东西,这应该在Oracle中起作用。易于将其更改为任何其他RDBMS。 也很容易添加任何其他主题。

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;