Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データのクエリと変更 » サブクエリの使用 » サブクエリのテスト

 

サブクエリ比較テスト

サブクエリの比較テスト (=、<>、<、<=、>、>=) は、単純な比較テストを変更したものです。サブクエリの比較テストでは、演算子の後ろに来る式がサブクエリになる点だけが異なります。このテストを使用して、メイン・クエリのローからの値を、サブクエリが生成する 1 つの値と比較します。

このクエリにはサブクエリ比較テストの例が含まれています。

SELECT Name, Description, Quantity
FROM Products
WHERE Quantity <  2 * (
   SELECT AVG( Quantity )
   FROM SalesOrderItems );
Name Description Quantity
Tee Shirt Tank Top 28
Baseball Cap Wool cap 12
Visor Cloth Visor 36
Visor Plastic Visor 28
... ... ...

次のサブクエリは単一の値、つまり各顧客が発注したタイプ別平均品目数を、SalesOrderItems テーブルから取り出します。

SELECT AVG( Quantity )
FROM SalesOrderItems;

メイン・クエリは、各品目の在庫数をその値と比較します。

比較テストのサブクエリは 1 つの値を返す

比較テストのサブクエリは 1 つの値を返します。次の例では、SalesOrderItems テーブルから 2 つのカラムを抽出するサブクエリを持つクエリを考えてみます。

SELECT Name, Description, Quantity
FROM Products
WHERE Quantity <  2 * (
   SELECT AVG( Quantity ), MAX( Quantity )
   FROM SalesOrderItems);

このクエリは、「select リストの中にカラムが 2 つ以上指定されています。」というエラーを返します。