トップページに戻る
次のSQLパズルへ
前のSQLパズルへ
9-5 一文字違いの文字列を取得
SQLパズル
文字列123456と、文字列長が等しくて
一文字違いの文字列を取得する
SQL
select Val
from (select '12345' as Val from dual
union select '123456' from dual
union select '12345c' from dual
union select '123b56' from dual
union select 'a12345' from dual
union select 'a23456' from dual)
where Val != '123456'
and (Val Like '_23456'
or Val Like '1_3456'
or Val Like '12_456'
or Val Like '123_56'
or Val Like '1234_6'
or Val Like '12345_');
プログラマのためのSQL第2版の12章[LikeとSimilar述語]を参考にさせていただきました
解説
Like演算子を6回使って、
一文字違いの文字列かチェックしてます。