SUBSTRING関数とは
SQLにおける、文字列を切り抜くことができる関数です。
使用方法
SUBSTRING(文字列,抽出開始位置,切り取る文字数)
使用例
SET 国名 = CASE SUBSTRING(TRIM(メールアドレス),
LENGTH(TRIM(メールアドレス))-1, 2)
WHEN 'jp' THEN '日本'
WHEN 'uk' THEN 'イギリス'
WHEN 'cn' THEN '中国'
WHEN 'fr' THEN 'フランス'
WHEN 'vn' THEN 'ベトナム' END;
参照もとのテーブルは端折っていますが、こんなふうに使います。
構造は下記の通りです
・ 指定する文字列 → TRIM(メールアドレス)
・ 抽出開始位置 → LENGTH(TRIM(メールアドレス))-1
・ 切り取る文字数 → 2
ネストが複雑ですが、メールアドレスの列を指定し、余白を切り取った文字列の長さの数値に-1したもの(つまり、文字列の末尾から一文字手前の位置)を指定し、そこから二文字抽出する、ということをしています。
まとめ
・ 列指定でのTRIMは必要ではないので、ないほうが良いですね。
・ 関数を設定する際に算術できる点が、少しわかりづらかったです。
→ なので、2ではなく、1+1でも同じ意味となり、正常に動作してくれます。
記述の自由度が高いことが分かりますね。
参考文献
2022,3『スッキリわかるSQL入門 第3版』