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

[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; 
関連する問題