SQL から LINQ への変換、パート 10: Like (Bill Horst)


ここでは、これまでの「SQL から LINQ への変換」の投稿をお読みになっていることを前提としています。


 


LINQ の投稿に関する具体的なリクエストはそれほど多くなかったので、ご提案があれば今からでも歓迎します。VB LINQ LIKE キーワード機能を模倣する方法についてのリクエストが 1 つありました。


 


SQL では、LIKE キーワードは文字列フィールドをパターンと比較し、その文字列がパターンと一致したかどうかを表すブール値を返します。たとえば、市外局番が 206 のすべての顧客を選択するには、次の SQL クエリを使用できます。


 








SQL


SELECT *


FROM CustomerTable


WHERE Phone LIKE ‘206*’


 


 


LIKE 式にはワイルドカード文字を指定できますが、システムによって異なる場合があります。上の例では、* は任意の文字列と一致するので、'206*' 206 で始まるすべての文字列を表します。


 


VB にもたまたま Like 演算子があるので、これは簡単に変換できます。上の SQL 式の LINQ バージョンは次のようになります。


 








VB


From Contact In CustomerTable _


Where Contact.Phone Like “206*”


 


 


VB Like キーワードには次のワイルドカードを指定できます。


          ?                  任意の 1 文字と一致


          *                 0 個以上の文字と一致


          #                 任意の 1 桁の数字と一致


          [ charlist ]     charlist に含まれる任意の 1 文字と一致


          [! charlist ]    charlist に含まれない任意の 1 文字と一致


 


Like 演算子の詳細については、こちらをご覧ください。


 


-      VB IDE テスト、Bill Horst


投稿 : 2008 年 5 月 7 日午後 4 時 54 分


VB チームの Web ログ - http://blogs.msdn.com/vbteam/archive/2008/05/07/converting-sql-to-linq-part-10-like-bill-horst.aspx (英語) より


Comments (0)

Skip to main content