質問 |
||
| 質問者: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 |
|
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | 抽出、出来ました。有難うございました。 |