1. nvl(expression1, expression2)
函數作用:從兩個表達式傳回一個非null值
用例:select nvl(father_name, mother_name) parent_name from student where student_id = '12345'
注意:
如果expression1的值非空,優先取expression1的值;
如果expression1的值空且expression2的值非空,則取expression2的值;
如果expression1和expression2均為空,則結果為NULL
2. decode(field_name, value1, new_value1, value2 , new_value2, default_value)
函數作用:類似if...else...語句區塊,針對某個字段,如果它的值為value1,則轉換為newValue1,如果值為value2 ,則轉換為newValue2,其他情況顯示預設值
用例:select decode(id,'1','A','2','B',id) from A;
注意:
decode(field_name, value1, new_value1, value2, new_value2, default_value)其中的value1,newValue1等可以是一個表達式
3. row_number(order by field_name )
函數作用:將資料集依照某個欄位排序,並產生序號欄位
使用案例:select row_number() over(order by name) no,id,name from a;
4. to_date(source_string, formater_string)
##函數作用:將字串轉換為日期類型用例:select to_date(' 20190809','yyyyMMdd') from dual;注意:'yyyyMMdd','yyyymmdd','yyyy-MM-dd','yyyy-mm-dd'都可以5. to_char()
函數作用:將其他型別轉換為字串型別使用案例1:select to_char(sysdate, 'yyyymmdd' ) from dual用例2:select to_char(99, 'fm999.00') from dual注意:用例1中還有很多其他的日期格式,如yyyy,mm,dd,D,DD,DDD等用例2中fm,9,0都有不同的意義,如下表所示意義 | |
---|---|
如果存在數字則顯示數字,不存在則顯示空格 | |
如果存在數字則顯示數字,不存在則顯示0,即佔位符 | |
刪除因為 | 9帶來的空格 |
#6. wm_concat
函數作用:行轉列,將多行查詢結果聚合到一行的某一列使用案例:select wm_concat(distinct name) from student注意:高版本oracle可能會去掉7. listagg() within group(order by field_name) over(partition by field_name)
函數作用:同wm_concat用例:select listagg(distinct name) within group(order by name desc) from student8. concat(expression1, expression2)
函數作用:字串拼接函數用例:select concat('left', 'Right') from dual注意:也可以利用|| 進行拼接,select 'a'||'b' from dual9. sys_guid()
函數作用:產生並傳回一個全球唯一的識別碼(原始值)由16個位元組組成,32個字元用例:select sys_guid () from dual;注意:常用來做表格的主鍵#10. over(partition by field_name, order by field_name)
函數作用:over函數是一個分析函數,和聚合函數搭配在一起使用可以簡潔代碼用例:select name, job, sal, deptno, sum(sal) over(partition by deptno) sum_sal, --统计某组中的总计值 avg(sal) over(partition by deptno) avg_sal, --统计某组中的平均值 from emp;注意:按照先前的寫法先進分組統計產生臨時表關聯原始表才可以取到其他信息,現在則不需要了通常和max(),min(),avg(),sum()等聚合函數一起使用
11 . nlssort
函數作用:提供簡體中文的特殊排序#使用案例:select * from student order by nlssort(name, 'nls_sort = schinese_pinyin_m') --拼音 select * from team order by nlssort(name, 'nls_sort = schinese_stroke_m') --笔画 select * from team order by nlssort(name, 'nls_sort = schinese_radical_m') --部首
12. trunc
#函數作用:是截取日期或數字,依照規則傳回指定的值使用案例1:select trunc(sysdate, 'yyyy') from dual用例2:select trunc(126.56, 0 ) from dual注意:用例1還有其他規則代表不同的意義意思 | |
---|---|
返回當月第一天 | |
返回當年第一天 | |
返回目前年月日 | |
返回當年第一天 | |
傳回目前星期的第一天 |
意思 | |
---|---|
#預設值,取下取整 | |
保留小數點後面a位小數,其他的抹掉,如果a比小數點後的位數多,則保留原值 | |
小數點後面的全部去掉,小數點向左移動abs(b)位,用0代替被抹掉的數字,如果所有數字都被抹掉,則回傳0 |
以上是19個常用Oracle內建函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!