アプリ版:「スタンプのみでお礼する」機能のリリースについて

最初の値から次の行の値まで
を同一に取れるようにしたいと思っています。

LAGやDECODEを用いてやってみましたが
うまく行きません。


ID CODE
------------
1  100
2  
3  
4  
5  200
6  
7  300
8  400
9  
10 

期待する値
ID CODE
------------
1  100
2  100 
3  100
4  100
5  200
6  200
7  300
8  400
9  400
10  400

どなたか宜しく御願いします。

A 回答 (2件)

select t1.id, max(t2.code) as code


from TBL as t1,( select id, code from TBL where code is not null ) as t2
where t1.id >= t2.id
group by t1.id
    • good
    • 0
この回答へのお礼

抽出、出来ました。有難うございました。

お礼日時:2008/03/17 23:05

別解です。

これならCODEが昇順にセットされていなくても大丈夫なはず。
select t1.id,
( select t2.code from tbl t2
where t2.id =
( select max(t3.id) from tbl t3
where t3.id<=t1.id and t3.code is not null ) ) code
from tbl t1;
    • good
    • 0
この回答へのお礼

抽出、出来ました。有難うございました。

お礼日時:2008/10/10 15:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!