- 締切済み
最初の値から次の行の値までを同一で取る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 どなたか宜しく御願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nora1962
- ベストアンサー率60% (431/717)
回答No.2
別解です。これなら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;
- nora1962
- ベストアンサー率60% (431/717)
回答No.1
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
質問者
お礼
抽出、出来ました。有難うございました。
お礼
抽出、出来ました。有難うございました。