0

選択への一種の入力として、任意の数値のリストを使用したいと考えています。もちろん、オプション A は、値 (1、2、3 など) だけを含む一時テーブルを作成することです。

Option >A とは何かを知っていただければ幸いです。

ステートメントが次のようになっているとします。

select Fx,
XXXXXX as Foo
from MyTable
where MyTest depends on each XXXXXX

したがって、魔法のように XXXXXX を値のリスト (1,2,3) にすることができれば、結果セットは次のようになります。

    My val | Foo
    -------+---
       cat | 1
     mouse | 2
cheesecake | 3

繰り返しますが、テーブルから入力を取得することもできますが、それが必要でない場合は、そうしないことを好みます。達人、声をかけてください。

ティア。

4

1 に答える 1

1

ROW_NUMBER() Window Aggregate 関数を使用すると、おそらく成功するでしょう。

順不同

SELECT CALENDAR_DATE
     , ROW_NUMBER()
       OVER (ORDER BY 1)
FROM SYS_CALENDAR.CALENDAR
WHERE CALENDAR_DATE BETWEEN DATE '2010-06-01' AND DATE 
;

または列による並べ替え

SELECT CALENDAR_DATE
     , ROW_NUMBER()
       OVER (ORDER BY CALENDAR_DATE)
FROM SYS_CALENDAR.CALENDAR
WHERE CALENDAR_DATE BETWEEN DATE '2010-06-01' AND DATE 
;

または別の列で分割してシーケンスを再開します

SELECT CALENDAR_DATE
     , YEAR_OF_CALENDAR
     , ROW_NUMBER()
       OVER (PARTITION BY YEAR_OF_CALENDAR
             ORDER BY CALENDAR_DATE)
FROM SYS_CALENDAR.CALENDAR
WHERE CALENDAR_DATE BETWEEN DATE '2009-11-01' AND DATE 
;

;

于 2010-06-24T13:43:38.430 に答える