Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
ここでは、これまでの「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 (英語) より