テーブル
SKey SText
---- --------------
A001 01,03,06,09
A002 01
A003 null
A004 01,02,03,05,10
A005 03,08,10
STextは、01、02、03、04、05、06、07、08、09が、
カンマ区切りでセットされている
条件ア 01が含まれる
条件イ 01と03が含まれる
条件ウ 01または08が含まれる
として条件を満たすかを出力する
出力結果
SKey SText ア イ ウ
---- -------------- ------ ------ ------
A001 01,03,06,09 True True True
A002 01 True False True
A003 null False False False
A004 01,02,03,05,10 True True True
A005 03,08,10 False False True
#■■■instr関数を使う方法■■■
select SKey,SText,
case when 0 < instr(SText,'01') then 'True' else 'False' end as "ア",
case when 0 < Least(instr(SText,'01'),instr(SText,'03')) then 'True' else 'False' end as "イ",
case when 0 < greatest(instr(SText,'01'),instr(SText,'03')) then 'True' else 'False' end as "ウ"
from (select 'A001' as SKey,'01,03,06,09' as SText
union select 'A002','01'
union select 'A003',null
union select 'A004','01,02,03,05,10'
union select 'A005','03,08,10') dummy;
#■■■正規表現を使う方法■■■
select SKey,SText,
case when 0 < instr(SText,'01') then 'True' else 'False' end as "ア",
case when 0 < Least(instr(SText,'01'),instr(SText,'03')) then 'True' else 'False' end as "イ",
case when SText RegExp '01|03' then 'True' else 'False' end as "ウ"
from (select 'A001' as SKey,'01,03,06,09' as SText
union select 'A002','01'
union select 'A003',null
union select 'A004','01,02,03,05,10'
union select 'A005','03,08,10') dummy;