ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:TatuKick 最初の値から次の行の値までを同一で取るSQLについて
困り度:
  • すぐに回答を!
最初の値から次の行の値まで
を同一に取れるようにしたいと思っています。

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

どなたか宜しく御願いします。
質問投稿日時:08/03/13 20:34
質問番号:3860085
最新から表示回答順に表示

回答

 

回答者:nora1962 別解です。これなら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;
種類:回答
どんな人:一般人
自信:参考意見
回答日時:08/03/15 01:12
回答番号:No.2
この回答への補足この回答に補足をつける(質問者のみ)
この回答へのお礼抽出、出来ました。有難うございました。

回答

 

回答者:nora1962 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
種類:回答
どんな人:一般人
自信:参考意見
回答日時:08/03/14 18:29
回答番号:No.1
この回答への補足この回答に補足をつける(質問者のみ)
この回答へのお礼抽出、出来ました。有難うございました。
 
最新から表示回答順に表示