1

通常のselect句よりもfrom句でselect句を使用する利点は何ですか?. 例のために。

select name, age, address from emp where 
 empid = 12.

上記のクエリに対する以下のクエリの利点は何ですか。

 select A.name, A.age, A.address from (select
  * from emp where empid = 12) as A.

内部クエリは一時ビューを作成し、その結果から、選択された最初のクエリのフィールドを作成します。右 ?。ただし、この質問の上部に記載されているクエリを使用して、同じ結果を取得することもできます。

利点は何ですか?ありがとう。

4

1 に答える 1

5

この手法を使用して、外側のクエリに表示したくない結果を内側のクエリで取得することができます。簡単な例として、各世帯の最年長者を確認したいのですが、これを行う 1 つの方法を次に示します。

SELECT name, age, address FROM
( 
  SELECT name, age, address, 
    rn = ROW_NUMBER() OVER (PARTITION BY address ORDER BY age DESC)
  FROM dbo.emp
) AS x
WHERE rn = 1;

このように、派生列 (基本的には、世帯メンバーの年齢順、古い順) は、結果セットの列である必要はありません (これにより、フィルター処理にも便利になります)。

そして、他にもたくさんあると思います(手の込んだ表現を繰り返さなくてもよいなど)。これは頭​​に浮かんだ最初のものでした。

あなたが質問に投稿した場合、私には利点がまったく見られません。誰かが利点があると言った実際の例を投稿すると、その理由 (または少なくとも彼らがそう考えた理由) を説明できるかもしれません。

于 2012-08-11T15:03:38.567 に答える