Oracle 一些實用的函式

2021-08-13 01:32:52 字數 1683 閱讀 5157

最近在用oralce寫查詢 遇到了一些有用的函式 先總結些 再慢慢補充

1. sum() over()

sum(sal) over (partition by deptno order by ename) 按部門「連續」求總和

sum(sal) over (partition by deptno) 按部門求總和

sum(sal) over (order by deptno,ename) 不按部門「連續」求總和

sum(sal) over () 不按部門,求所有員工總和,效果等同於sum(sal)。

2.regexp_instr()

6個引數

第乙個是輸入的字串

第二個是正規表示式

第三個是標識從第幾個字元開始正規表示式匹配。(預設為1)

第四個是標識第幾個匹配組。(預設為1)

第五個是指定返回值的型別,如果該引數為0,則返回值為匹配位置的第乙個字元,如果該值為非0則返回匹配值的最後乙個位置。

第六個是是取值範圍:

i:大小寫不敏感;

c:大小寫敏感;

n:點號 . 不匹配換行符號;

m:多行模式;

x:擴充套件模式,忽略正規表示式中的空白字元。

它返回乙個整數,指示開始或結束匹配的子位置,這取決於return_option引數的值。如果沒有找到匹配,則函式返回0。

注:oracle中的支援正規表示式的函式主要有下面四個:

1,regexp_like :與like的功能相似

2,regexp_instr :與instr的功能相似

3,regexp_substr :與substr的功能相似

4,regexp_replace :與replace的功能相似

它們在用法上與oracle sql 函式like、instr、substr 和replace 用法相同

這是最基礎的用法:

listagg(

measure_expr

,delimiter

) within group( order by order_by_clause ) over (partition 

bynation)

即在每個分組內,listagg根據order by子句對列植進行排序,將排序後的結果拼接起來。

measure_expr:可以是任何基於列的表示式。

delimiter:分隔符,預設為nul

order_by_clause:order by子句決定了列值被拼接的順序。

4.oracle 中文轉拼音fn_getpy()

sql> select fn_getpy('具雋帆') from dual;

jujuanfan

sql> select fn_getpy('具雋帆',1) from dual;

jujuanfan

sql> select fn_getpy('具雋帆',2) from dual;

jujuanfan

sql> select fn_getpy('具雋帆',3) from dual;

jjfsql> select fn_getpy('具雋帆',4) from dual;

jujuanfan

PHP一些實用函式

轉換字串第乙個位元組為 0 255 之間的值 小寫字母 97 122 大寫字母 65 90 解決字串中包含字母數字中文轉換為大寫問題 function mystrtoupper a r.chr v return r 取得影象大小 可以用以解決確認上傳檔案是否為 返回乙個具有四個單元的陣列。索引 0 ...

Python一些實用的函式

用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。該接收兩個引數,第乙個為函式,第二個為序列,序列的每個元素作為引數傳遞給函式進行判,然後返回 true 或 false,最後將返回 true 的元素放到新列表中。def is odd n return n 2 1 newlist ...

C 一些實用的函式

1.datetime 轉為unix的long的時間戳 long ordertime order.addtime.tounixtimestamp milliseconds long paytime order.starttime.value.tounixtimestamp milliseconds 2...