なにをしたいのか
UiPathでデータテーブルを操作する際にもっとSQLを活用したい!という願望です。
今回はIN句を使って、「特定列に調べたい値が存在するのか」を調べてみます。
どうやってやるのか
今回は下のデータテーブル(dtbFood)を例に、
「くだもの」列に「いちご」の値が存在するかをSQLのIN句を使ってみていきます。
さかな | にく | くだもの | こめ |
---|---|---|---|
アジ | 豚肉 | ぶどう | あきたこまち |
カツオ | 鶏肉 | いちご | つや姫 |
マグロ | 牛肉 | りんご | ゆめぴりか |
サンマ | 鹿肉 | みかん | こしひかり |
使う文↓
右辺
dtbFood.Select("[くだもの] IN ('いちご')").CopyToDataTable
左辺
データテーブル名(dtbTempとか)
範囲を読み込みで、調べたいテーブルを「dtbFood」として出力させて、次の代入で「くだもの」列に「いちご」の値がある行を抽出します。
↓実行してみると
dtbTempの中身には「いちご」が存在する行が抽出されている
↓「いちご」が存在する行は1行なので、行数を出力させると「1」と表示される
独り言
データテーブルをフィルタリングでも同じことが出来ますが、繰り返し処理の中でフィルタリングを多用するとなんだか処理が重い…?
SQLで実装すべくIN句を使うに至りました。
そのままコピペして使えそうな記事がなかったので(※僕調べ)備忘用記事。
もっといい方法があったら教えてください(´;ω;`)