300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > oracle取非空 求一条sql 返回分组后 空值取最近一条非空值 非空值取本身

oracle取非空 求一条sql 返回分组后 空值取最近一条非空值 非空值取本身

时间:2019-10-20 04:15:42

相关推荐

oracle取非空 求一条sql 返回分组后 空值取最近一条非空值 非空值取本身

如下:

SQL> with t as(select 1 id,'A' value1,0907 da from dual union all

2 select 1 id,'' value1 ,0908 da from dual union all

3 select 1 id,'' value1 ,0909 da from dual union all

4 select 1 id,'B' value1 ,0910 da from dual union all

5 select 1 id,'' value1 ,0911 da from dual union all

6 select 2 id,'C' value1 ,0907 da from dual union all

7 select 2 id,'A' value1 ,0908 da from dual union all

8 select 2 id,'' value1 ,0909 da from dual union all

9 select 2 id,'' value1 ,0910 da from dual union all

10 select 2 id,'' value1 ,0911 da from dual

11 )

12select id,

13 value1,

14 da,

15 last_value(value1 ignore nulls) over(partition by id order by rownum) new_value1

16 from t

17/

ID VALUE1 DA NEW_VALUE1

---------- ------ ---------- ----------

1 A907 A

1908 A

1909 A

1 B910 B

1911 B

2 C907 C

2 A908 A

2909 A

2910 A

2911 A

10 rows selected

SQL>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。