WHERE 句または HAVING 句を使用して、同じロー・セットを指定できる場合があります。このような場合に、効率的な方法とそうでない方法があります。オプティマイザは、入力された各文を常に自動的に分析し、効率的な実行方法を選択します。意図する結果を最も明確に記述する構文を使用するのが最善です。通常は、前にある句の不要なローが削除されます。
受注数が 55 を超え、かつ ID が 1000 よりも大きいすべての営業担当者をリストするには、次の文を入力します。
SELECT SalesRepresentative, COUNT( * ) FROM SalesOrders WHERE SalesRepresentative > 1000 GROUP BY SalesRepresentative HAVING count( * ) > 55 ORDER BY SalesRepresentative; |
次の SQL 文も同じ結果になります。
SELECT SalesRepresentative, COUNT( * ) FROM SalesOrders GROUP BY SalesRepresentative HAVING count( * ) > 55 AND SalesRepresentative > 1000 ORDER BY SalesRepresentative; |
SQL Anywhere は、両方の文で同じ結果セットが記述されていることを検出するため、それぞれの文が効率的に実行されます。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |