【SQLServer】特定文字の前後を取得する

概要

以下の関数を用いて文字列から、特定文字の前後を取得する。
・Left(文字列の左側から◯文字抽出)
・Right (文字列の右側から◯文字抽出 )
・Len (文字列長を数字で返す)
・CHARINDEX (検索文字列が何文字目にあるか数字で返す)

例:”_”の前後で分解

コード例

SQL
--"_"より前の'test'を抽出
select Left('test_123',CHARINDEX('_','test_123')-1)

--"_"より後の'123'を抽出
select Right('test_123',(Len('test_123') - CHARINDEX('_','test_123')))
SQL

【結果】

test

123

カスタマイズ案

対象文字列:’test_123’の部分をカラム名などに変更してください。
検索文字列:’_’の部分を変更してください。

SQL
--例:都道府県テーブルから"県"より前を取得
select Left([都道府県],CHARINDEX('県',[都道府県])-1)
SQL