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 ログ - https://blogs.msdn.com/vbteam/archive/2008/05/07/converting-sql-to-linq-part-10-like-bill-horst.aspx (英語) より