• 締切済み

最初の値から次の行の値までを同一で取る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 どなたか宜しく御願いします。

みんなの回答

  • 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;

TatuKick
質問者

お礼

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

  • 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

TatuKick
質問者

お礼

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

関連するQ&A

専門家に質問してみよう