【その3】sqlserver Selectクエリ(あいまいな条件を指定しての検索)

【その3】sqlserver Selectクエリ(あいまいな条件を指定しての検索)

この記事を読むのに必要な時間は約 5 分です。

曖昧な条件を指定しようぜ!

はい。今回は、前回の続きっぽく条件指定での検索をしてみたいと思います。

前回は「東京都新宿区愛住町18-7」を指定して検索を行いましたね。

前回の結果だけを再現するとこんな感じになります。

/****** SSMS の SelectTopNRows コマンドのスクリプト  ******/
SELECT 
       [かな都道府県名]
      ,[かな市区町村名]
      ,[漢字都道府県名]
      ,[漢字市区町村名]
      ,[漢字町域名]
  FROM [test001].[dbo].[yubin] 
 
where  
	  [漢字町域名]    ='愛住町'

この様な形で検索ができました。

ただ、前回は、検索範囲を徐々に狭めていき、最終的な解にたどり着きましたね。

手法としては全く問題ないのですが、もう少しだけ検索効率を高める事ができます。それが今回のテーマである「曖昧検索」です。

曖昧検索とは、山●●かもしれない。といった一部の情報が分かっているが、全部がわからない場合などに使います。

それではさっそく曖昧な検索を行ってみましょう。お題は前回同様「東京都新宿区愛住町18-7」でやってみます。

 

あいまい検索

お題の「東京都新宿区愛住町18-7」に対して、[愛住町]の真ん中の文字である【住】がわからないような場合に利用します。

方法は簡単で、わからない文字を 【%】で置き換えます。

そして、検索時に指定していた

●●=■■ 

みたいな書き方が以下のように書き換わります。

●● like ■■ 

※真ん中のlikeに書き換わりました。

それでは通して書いてみたいと思います。

/****** SSMS の SelectTopNRows コマンドのスクリプト  ******/
SELECT 
       [かな都道府県名]
      ,[かな市区町村名]
      ,[漢字都道府県名]
      ,[漢字市区町村名]
      ,[漢字町域名]
  FROM [test001].[dbo].[yubin] 
 
where  
	  [漢字町域名]    like '愛%町'

それではこの条件で検索を実施してみたいと思います。

 

 

お、思った以上に多かったです・・・

それでは今回も結果が一つになるまで絞り込んでみたいと思います。

当道府県の情報で東京が答えであることが分かっていますので、東京っぽい言葉をあてがって検索したいと思います。

っぽい言葉ですので、折角なので東京都の【都】で終わる言葉を条件に追加してみたいと思います。

クエリは以下です。

/****** SSMS の SelectTopNRows コマンドのスクリプト  ******/
SELECT 
       [かな都道府県名]
      ,[かな市区町村名]
      ,[漢字都道府県名]
      ,[漢字市区町村名]
      ,[漢字町域名]
  FROM [test001].[dbo].[yubin] 
 
where  
	  [漢字町域名]     like '愛%町' and
	  [漢字都道府県名] like '%都'

この条件を入れると一発で絞れちゃいましたね。

なので、

  1. 【都道府県】の情報が●●都で終わる
  2. 市町村】の情報が ‘愛で始まり、町で終わる

な場所は、一か所しかない事がわかりました。

※あんまり意味がない様な内容でした・・・が、練習の題材としては丁度良いかなと

次回もあいまい検索に触れてみたいと思います。

 

 

 

 

 

 

 

 

タイトルとURLをコピーしました