都内で働くSEの技術的なひとりごと / Technical soliloquy of System Engineer working in Tokyo

都内でサラリーマンやってます。SQL Server を中心とした (2023年からは Azure も。) マイクロソフト系(たまに、OSS系などマイクロソフト以外の技術も...)の技術的なことについて書いています。日々の仕事の中で、気になったことを技術要素関係なく気まぐれに選んでいるので記事内容は開発言語、インフラ等ばらばらです。なお、当ブログで発信、発言は私個人のものであり、所属する組織、企業、団体等とは何のかかわりもございません。ブログの内容もきちんと検証して使用してください。英語の勉強のため、英語の

便利な SQL の関数とか、構文とか、その他色々まとめてみる - その2 ( Like で正規表現を利用する ) -

 今回は、Like 文による正規表現です。姓名を検索するときに、〇田さんを探したいとか、山〇さんを探したいとかの要件が発生するかと思います。テキスト検索なので、フルテキストインデックスなどを使用したら...と思いますが、フルテキストはちょっとハードルが高いなー、テーブルの件数がそれほど多くないなーという場合には、正規表現によって実現したほうが色々応用ができて便利な場合が多いです。( と思います。個人的意見です。 )

 今回は以下のような簡単なテーブルを利用しています。

f:id:koogucc11:20140330194510p:plain

 例えば、姓で一文字目は、『山』で、二文字目は『本』ではない人を探す場合は、下記のようなクエリで実現できます。

SELECT * FROM [dbo].[name] Where last_name LIKE N'山[^本]%'

f:id:koogucc11:20140330194819p:plain

 Like 文で正規表現を使用することができます。色々応用できそうですね。