1

それ自体が選択の製品であるテーブルで選択を行う方法があるかどうか、私は興味があります。の線に沿った何か(疑似)

    select a,b,c from 
(select id as a, name as b, phone as c, date as d from some_table) 
where  d = now();

したがって、実際には、括弧はテーブルを返し、その列は によって定義されas、外側selectに移動してその結果をクエリできます。

これとまったく同じでない場合は、漠然と類似したアプローチを使用できるか知りたいと思います。

これが必要な理由は、ユーザー データに対して実行するかなり大規模なピボット クエリがあり、かなり大規模な結果から選択できるようにしたいからです。

4

2 に答える 2

2

「派生テーブルにはエイリアスが必要です」などのエラーが表示される可能性があります

以下の作品:

select a,b,c 
from (
     select id as a, 
            name as b, 
            phone as c, 
            some_date as d 
     from some_table
) as t 
where  d <= now();

エイリアスtは、いわゆる派生テーブルを定義します。

SQLFiddle: http://sqlfiddle.com/#!2/05fd6/2

于 2013-05-22T07:28:04.047 に答える
1

はい、可能です。これを試して:

select A.a,A.b,A.c from 
(select id as a, name as b, phone as c, date as d from some_table where  d = now()) A

これを派生テーブルと呼びます。

WHEREサブクエリの外側に移動するには:

select A.a,A.b,A.c, A.d from 
(select id as a, name as b, phone as c, date as d from some_table) A
where A.d = now()
于 2013-05-22T07:24:09.227 に答える