一、字符類函數
1,ASCII(c)和CHR(i)字符串和ascii碼互轉換
SQL> select ascii('Z') ,ascii('H'),ascii(' A') from dual;ASCII('Z') ASCII('H') ASCII('A')
---------- ---------- ----------90 72 32SQL> select chr(90),chr(72),chr(65) from dual;CH CH CH
-- -- --
Z H A
2.CONCAT(s1,s2)連接字符串
SQL> select concat('','')from dual;C
-SQL> select concat('hey','')from dual;CONCAT
------
heySQL> select concat('','addie')from dual;CONCAT('',
----------
addie
3.INITCAP首字母大寫
SQL> select initcap('addie')from dual;INITCAP('A
----------
Addie
4.INSTR(s1,s2[,i][,j])返回子字符串s2在s1中
SQL> select instr('helloinaddie','addie') from dual;INSTR('HELLOINADDIE','ADDIE')
-----------------------------8
5.LENGTH返回字符串長度
SQL> select length('helloaddie') from dual;LENGTH('HELLOADDIE')
--------------------10
6.LOWER和UPPER大小寫轉換
SQL> select lower('ADDIE'),upper('addie')from dual;LOWER('ADD UPPER('ADD
---------- ----------
addie ADDIE
7.Itrim(s1,s2)、Rtrim(s1,s2)、Trim(s2 from s1)去除字符串左邊、右邊、兩邊的指定字符
SQL> select ltrim('***addie***','*'),rtrim('**addie*','*'),trim('*' from '******addie***')from dual;LTRIM('***ADDIE* RTRIM('**ADDIE TRIM('*'FR
---------------- -------------- ----------
addie*** **addie addie
8.REPLACE(s1,s2[,s3])使用子
將s1中s2位置處的字符替換成字符串s3
SQL> select replace('helloimaddie','addie','allen')from dual;REPLACE('HELLOIMADDIE','
------------------------
helloimallen
9.SUBSTR(s,i,[j])截取字符串
從字符串s中第i個字符開始截取j個長度的子字符串
SQL> select substr('helloeocoimaddiethisismyfirstexercise',10,15)from dual;SUBSTR('HELLOEOCOIMADDIETHISIS
------------------------------
imaddiethisismy
二、數字類函數
1.ABS[n]返回n的絕對值
SQL> select abs(-9.1) from dual;ABS(-9.1)
----------9.1
2.ROUND(n1,n2)返回舍入小數點右邊n2位的n1的值
n2的默認值為0 返回最接近的整數。如果n2為負數,則向小數點左邊相應位數做舍入,n2必須是整數。
SQL> select round(3.1415926,3) from dual;ROUND(3.1415926,3)
------------------3.142
3.CELI(n)返回大于等于n的最小整數,FLOOR(n)則相反 返回小于等于n的最大整數
SQL> select ceil(9.1),floor(-7.1) from dual;CEIL(9.1) FLOOR(-7.1)
---------- -----------10 -8
4.MOD(n1,n2)返回n1除以n2的余數
SQL> select mod(9.3,3) from dual;MOD(9.3,3)
----------.3
5.ROUND(n1,n2)返回舍入小數點右邊n2位的值,n2可以是負數 為負則小數點左邊舍入
四舍五入
SQL> select round(13.1526789,3),round(13.1526789,-1) from dual;ROUND(13.1526789,3) ROUND(13.1526789,-1)
------------------- --------------------13.153 10
6.sign(n)判斷n的正負
SQL> select sign(1),sign(0),sign(-9) from dual;SIGN(1) SIGN(0) SIGN(-9)
---------- ---------- ----------1 0 -1
7.TRUN(n1,n2)返回結尾到n2位小數的n1的值,可以為負數,必須為整數
僅截取,不做四舍五入
SQL> select trunc(3.14159,3),trunc(3.14159,-1),round(3.14159,3) from dual;TRUNC(3.14159,3) TRUNC(3.14159,-1) ROUND(3.14159,3)
----------------- ----------------- ----------------3.141 0 3.142
三、日期和時間類函數
1.ADD_MONTHS(date,n)返回date后n個月的date
SQL> select sysdate,add_months(sysdate,6) from dual;SYSDATE ADD_MONTHS(SYS
-------------- --------------
19-3月 -25 19-9月 -25
2.LAST_DAY(date)返回date所在月份的最后一天
SQL> select last_day(sysdate) from dual;LAST_DAY(SYSDA
--------------
31-3月 -25
3.MONTHS_BETWEEN(d1,d2)返回d1和d2之間相差的天數
4.NEW_TIME(d1,t1,t2)當時區t1中的日期和時間是d1時,返回時區t2中的日期和時間
5.SYSDATE()返回系統當前的日期
四、轉換類函數
1.TO_CHAR(x[,format])將表達式轉換為字符串
SQL> select sysdate,to_char(sysdate,'YYYY-MM-DD') from dual;SYSDATE TO_CHAR(SYSDATE,'YYY
-------------- --------------------
19-3月 -25 2025-03-19
2.TO_DATE(s[,format[lan]])將字符串轉換為date類型
SQL> select to_date('2025-09-19','YYYY-MM-DD') from dual;TO_DATE('2025-
--------------
19-9月 -25
3.TO_NUMBER(s[,format[lan]])返回字符串s代表的數字
常用于進制轉換
五、聚集類函數
1.AVG()計算選擇列表項的平均值
SQL> select count(empno),avg(sal) from emp;COUNT(EMPNO) AVG(SAL)
------------ ----------10 2267.5