oracle中分析函式獲取之前最近的不為null的值
oracle通過分析函式獲取當前行之前的不為空的值
使用last_value,但是要註明ignore nulls
比如有資料如下:
RN ADDRESS ARRIVAL_TIME USERID
------ ---------- ------------------- ---------
1 A1 2012-7-9 下午12:03:21 1
(null) A2 2012-7-9 下午12:04:21 2
(null) A3 2012-7-9 下午12:05:21 3
2 A1 2012-7-9 下午12:08:21 4
(null) A2 2012-7-9 下午12:09:21 5
(null) A3 2012-7-9 下午12:10:21 6
3 A1 2012-7-9 下午12:13:21 7
(null) A3 2012-7-9 下午12:15:21 8
4 A1 2012-7-9 下午12:18:23 9
5 A1 2012-7-9 下午12:19:21 10
(null) A2 2012-7-9 下午12:20:21 11
(null) A3 2012-7-9 下午12:21:21 12
6 A1 2012-7-9 下午12:23:23 13
(null) A2 2012-7-9 下午12:24:21 14
select rn,address,arrival_time,userid,last_value(rn ignore nulls) over(order by userid) from test
查詢結果如下:
RN ADDRESS ARRIVAL_TIME USERID GROUP_T
------ ---------- ------------------- --------- ----------
1 A1 2012-7-9 下午12:03:21 1 1
(null) A2 2012-7-9 下午12:04:21 2 1
(null) A3 2012-7-9 下午12:05:21 3 1
2 A1 2012-7-9 下午12:08:21 4 2
(null) A2 2012-7-9 下午12:09:21 5 2
(null) A3 2012-7-9 下午12:10:21 6 2
3 A1 2012-7-9 下午12:13:21 7 3
(null) A3 2012-7-9 下午12:15:21 8 3
4 A1 2012-7-9 下午12:18:23 9 4
5 A1 2012-7-9 下午12:19:21 10 5
(null) A2 2012-7-9 下午12:20:21 11 5
(null) A3 2012-7-9 下午12:21:21 12 5
6 A1 2012-7-9 下午12:23:23 13 6
(null) A2 2012-7-9 下午12:24:21 14 6
除了last_value(rn ignore nulls),到了11g r2,oracle還支援了lag(rn ignore nulls)和lead(rn ignore nulls)
使用last_value,但是要註明ignore nulls
比如有資料如下:
RN ADDRESS ARRIVAL_TIME USERID
------ ---------- ------------------- ---------
1 A1 2012-7-9 下午12:03:21 1
(null) A2 2012-7-9 下午12:04:21 2
(null) A3 2012-7-9 下午12:05:21 3
2 A1 2012-7-9 下午12:08:21 4
(null) A2 2012-7-9 下午12:09:21 5
(null) A3 2012-7-9 下午12:10:21 6
3 A1 2012-7-9 下午12:13:21 7
(null) A3 2012-7-9 下午12:15:21 8
4 A1 2012-7-9 下午12:18:23 9
5 A1 2012-7-9 下午12:19:21 10
(null) A2 2012-7-9 下午12:20:21 11
(null) A3 2012-7-9 下午12:21:21 12
6 A1 2012-7-9 下午12:23:23 13
(null) A2 2012-7-9 下午12:24:21 14
select rn,address,arrival_time,userid,last_value(rn ignore nulls) over(order by userid) from test
查詢結果如下:
RN ADDRESS ARRIVAL_TIME USERID GROUP_T
------ ---------- ------------------- --------- ----------
1 A1 2012-7-9 下午12:03:21 1 1
(null) A2 2012-7-9 下午12:04:21 2 1
(null) A3 2012-7-9 下午12:05:21 3 1
2 A1 2012-7-9 下午12:08:21 4 2
(null) A2 2012-7-9 下午12:09:21 5 2
(null) A3 2012-7-9 下午12:10:21 6 2
3 A1 2012-7-9 下午12:13:21 7 3
(null) A3 2012-7-9 下午12:15:21 8 3
4 A1 2012-7-9 下午12:18:23 9 4
5 A1 2012-7-9 下午12:19:21 10 5
(null) A2 2012-7-9 下午12:20:21 11 5
(null) A3 2012-7-9 下午12:21:21 12 5
6 A1 2012-7-9 下午12:23:23 13 6
(null) A2 2012-7-9 下午12:24:21 14 6
除了last_value(rn ignore nulls),到了11g r2,oracle還支援了lag(rn ignore nulls)和lead(rn ignore nulls)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28803801/viewspace-776134/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle-空值null和數字相加的問題-nvl函式OracleNull函式
- shell指令碼獲取函式返回值指令碼函式
- ROUND(x,y)與TRUNC(x,y)函式中y引數值為省略、空值與null的區別函式Null
- 需要取最近的非空值
- TreeMap get獲取資料為nullNull
- hive中的null值HiveNull
- SQL語句中聚合函式忽略NULL值的總結SQL函式Null
- jQuery獲取CSS樣式中的顏色值的問題jQueryCSS
- Oracle 分析函式的使用Oracle函式
- 練習 讀取函式裡的值函式
- 使用mysql 統計函式 結果為null時返回值改為0MySql函式Null
- SQL中的空值NULLSQLNull
- SQL server中的NULL值SQLServerNull
- oracle中的nullOracleNull
- 【NULL】Oracle null值介紹NullOracle
- Oracle 中的 ROW_NUMBER() OVER() 分析函式的用法Oracle函式
- 視窗屬性的獲取函式函式
- 用前面建立的函式獲取物件函式物件
- 核心分析PE獲取DLL匯出函式地址函式
- js獲取非內部取樣式表中定義的屬性值JS
- 分析函式中的KEEP函式
- oracle的分析函式over 及開窗函式Oracle函式
- 和Null有關的函式Null函式
- js如何獲取樣式表中定義的css屬性值JSCSS
- Oracle層次查詢和分析函式在號段選取中的應用Oracle函式
- Oracle分析函式七——分析函式案例Oracle函式
- SQL 查詢中的 NULL 值SQLNull
- 去除陣列中的 null 值陣列Null
- 關於Oracle取整的函式Oracle函式
- js 獲取被選中核取方塊的值JS
- 獲取javascript函式形參的數目JavaScript函式
- 反射如何獲取函式的引數名反射函式
- sql 獲取系統時間的函式。SQL函式
- Oracle聚合函式/分析函式Oracle函式
- Oracle中的NULL(六)OracleNull
- Oracle中的NULL(五)OracleNull
- Oracle中的NULL(八)OracleNull
- 面試題((A)null).fun()——java中null值的強轉面試題NullJava