質問: ### 前提・実現したいこと SQLで一部文字列を抽出する方法はありますか? 例:メールアドレスからの「@」の前を抽出 例:埼玉県、神奈川県、千葉県...等のリストから「県」の前を抽出 初めの○文字等、決まった文字数を一律で抽出する方法はわかるのですが、 上記のような指定文字の前の部分を抽出する方法はありますでしょうか。 恐れ入りますが、どうぞよろしくお願い致します。 ### 補足情報(言語/FW/ツール等のバージョンなど) Microsoft SQL Server Management Studioを使用
回答: 都道府県の場合だと県を含むとは限らないので こんな感じで ``` SELECT LEFT(都道府県, CASE WHEN CHARINDEX('県', 都道府県) <> 0 THEN CHARINDEX('県', 都道府県) - 1 ELSE 0 END) AS 県名 ``` CHARINDEX の代わりに PATINDEX を使うと後方一致や前方一致も出来ます。