WITH句の列が、関連付けられているSELECT句の中に示されているのと同じ順序で参照される場合は、サマリー値の戻り順序によって、BTEQは同一の結果行に、すべての集約操作のサマリー テキストを配置できます。 順序が一致しない場合は、サマリー テキストに対応する複数の結果行を生成します。 それぞれの集約操作の値に対し、個別の結果行が作成されます。
例 – 順序の一致
次の例は、簡単なSELECT WITH文です。このステートメントでは、WITH句の列参照の順序がSELECT句の列参照の順序と一致しています。 BTEQでは、サマリー テキストが同一の結果行に配置されます。
SELECT salary, edlev, hcap FROM employee WITH sum(salary), sum(edlev), sum(hcap) WHERE deptno = 500 ;
BTEQの応答
*** Query completed. 8 rows found. 3 columns returned. *** Total elapsed time was 1 second. Salary EdLev HCap ---------- ---------- ---------- 34,000.00 16 0 44,000.00 20 0 42,000.00 18 0 30,000.00 16 0 40,000.00 16 0 56,000.00 20 0 22,000.00 18 0 ---------- ---------- ---------- 268,000.00 124 0
同一の結果行にはタイトルを含めるスペースがないため、サマリーのタイトルはすべて消去されます。
例 - 順序の不一致
次の例も簡単なSELECT WITH文ですが、このステートメントでは、WITH句の列参照の順序がSELECT句の列参照の順序と一致していません。 BTEQは、結果サマリー テキストを複数の結果行に配置します。
SELECT salary, edlev, hcap FROM employee WITH sum(hcap), sum(edlev), sum(salary) WHERE deptno = 500 ;
BTEQの応答
*** Query completed. 8 rows found. 3 columns returned. *** Total elapsed time was 1 second. Salary EdLev HCap ---------- ---------- ---------- 44,000.00 20 0 34,000.00 16 0 42,000.00 18 0 30,000.00 16 0 40,000.00 16 0 56,000.00 20 0 22,000.00 18 0 ---------- ---------- ---------- Sum(HCap) 0 Sum(EdLev) 124 268,000.00
サマリーのタイトルは、最初の集約値を除いて、サマリー テキストの結果の一部になっています。 最初のタイトルは、結果行のスペースが足りないため、表示されていません。