oracle函数

本文详细介绍SQL中的字符串函数、数学函数及日期函数的应用技巧,包括转换、计算与日期处理等核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:字符串函数

    ①to_char:将其它数据类型(数值型、日期)转换为字符串。

       a:将数值型转换为字符串,转换的格式可以用9或者0、千位分隔符(,)和小数点(.)。其中9和0的区别为如果数字参数位置上没有数字那么'0'会强制保留为0,9会是空的(小数除外)。实例如下:


 

      注:在数字转换为字符串是可以加上货币说明符得到一定的货币格式字符串如下:



         b:将日期转换为字符串,最常见的日期格式就是'yyyy-mm-dd'了。其它的日期格式请查找其它文档。


 


 

  ②:大小写转换lower()---返回小写字符串,upper()---返回大写字符串 ,initcap()---单词首字母大写   如下:



    ③length()---字符串长度

    ④去空白 lpad()---除左边空白,rpad()---除右边空白,trim()---除首尾空白

 

     ⑤substr()---截取字符串如下:oracle计算字符的位置是从1开始的不像其他编程语言字符串开始的位置是0

 

⑥instr(str1,str2,startIndex,count)---获得str2在str1中出现的位置,strartIndex 默认值为str1的开始,count默认为1(第几次出现)

⑦translate(str1,str2,str3)----替换字符

检索str1中的每个字符,如当前为x

if(在str2中找'x'如果能找到,位置为n){在str3中找位置为n的字符并返回(如果没有就返回空字符串),用返回的字符串替换str1中的字符x}else{什么也不做}             实例如下:


⑧chr()将ascii码转为字符串


2:数学函数

    ①abs()取绝对值

  ②round(parm1,position)四舍五入

ppostition是要保留到哪一位正数的话就是小数点后面。负数就是小数点前面。如果省略position就是0为保留整数。


   ③取整ceil()---向上取整(大于等于该参数的整数),floor()---向下取整(小于等于某个数的整数)

     ④trunc()----数字的截断,没有四舍五入,使用和round一样


   ⑤mod()---取余操作,可以对0取余数,结果还是数本身

⑥平方根和乘方运算 sqrt()----平方根,power(x,y)[x的y次方为]----乘方

 

⑦判断数值的正负sign(x),如果>0返回1,<0为-1 ,==0为0  即 结果为x>0?1:(x==0?0:-1)

 

⑧将字符串转换为数值to_number(x),如果x不能转换为字符串oracle抛出错误。

3:日期函数

   ①to_date()将字符串转换为日期

 

  ②last_day()---返回一个日期月份的最后一天

 

③add_month(date,n) 给指定日期加上n个月后的日期


④months_between(date1,date2)--返回两个日期所差月数date1早于date2返回负数



⑤  返回日期的某个部分extract()。和to_char也可以获得日期的某个部分。extract() 返回的是数值型,而

to_char返回的是字符串

extract 的hour,minute,second只能从时间型(timestamp)中获得。

<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>

格式

名称

year

年份

month

day

                                hour

小时

minute

分钟

second

秒数

tmezone_hour

当前时区小时数



### Oracle 数据库函数使用说明与示例 #### 1. 基础概念 Oracle 函数是一种 PL/SQL 块,能够执行特定的计算或操作并返回值。可以通过 `CREATE OR REPLACE FUNCTION` 创建自定义函数,并通过 SQL 或 PL/SQL 进行调用[^4]。 #### 2. 字符串处理函数 字符串处理函数在数据清洗和格式化中非常常见。以下是几个常用的字符串处理函数及其示例: - **REPLACE** 将指定子字符串替换为另一个字符串。如果未找到匹配项,则返回原始字符串。 ```sql SELECT REPLACE('Hello, World!', 'World', 'Oracle') AS result FROM dual; -- 输出: Hello, Oracle! ``` - **SUBSTR** 提取字符串的一部分,基于起始位置和长度。 ```sql SELECT SUBSTR('Hello, Oracle!', 8, 7) AS result FROM dual; -- 输出: Oracle! ``` - **INSTR** 返回子字符串首次出现的位置。如果没有找到子字符串,则返回 0。 ```sql SELECT INSTR('Hello, Oracle!', 'Oracle') AS position FROM dual; -- 输出: 8 ``` #### 3. 数学运算函数 数学函数用于数值计算,支持四舍五入、绝对值等操作。 - **ROUND** 对数字进行四舍五入到指定位数。 ```sql SELECT ROUND(123.456, 2) AS rounded_value FROM dual; -- 输出: 123.46 ``` - **ABS** 计算给定数字的绝对值。 ```sql SELECT ABS(-123.456) AS absolute_value FROM dual; -- 输出: 123.456 ``` #### 4. 聚合函数 聚合函数用于对一组记录进行统计分析。 - **AVG** 计算某一列的平均值。 ```sql SELECT AVG(salary) AS average_salary FROM employees; ``` - **COUNT** 统计满足条件的行数。 ```sql SELECT COUNT(*) AS total_employees FROM employees WHERE department_id = 10; ``` - **SUM** 计算某一列的总和。 ```sql SELECT SUM(salary) AS total_salary FROM employees; ``` #### 5. 自定义函数示例 创建一个简单的自定义函数来计算两个整数之和: ```sql CREATE OR REPLACE FUNCTION add_numbers (num1 NUMBER, num2 NUMBER) RETURN NUMBER IS result NUMBER; BEGIN result := num1 + num2; RETURN result; END; / SELECT add_numbers(10, 20) AS sum_result FROM dual; -- 输出: 30 ``` #### 6. 错误处理注意事项 在使用聚合函数时需要注意分组规则。例如,在 `GROUP BY` 子句中使用的列必须显式声明,或者作为聚合函数的结果存在[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值