トップページに戻る    次の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回使って、
一文字違いの文字列かチェックしてます。