我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle中单行函数操作详解

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle中单行函数操作详解

Oracle中单行函数操作详解

单行函数--PL/SQL

(一)字符函数

函    数

          说               明

 CONCAT

拼接两个字符串,与 || 相同

 INITCAP

将字符串的第一个字母变为大写

 INSTR

找出某个字符串的位置

 LENGTH

以字符给出字符串的长度

 REPLACE

执行字符串搜索和替换

 SUBSTR

取字符串的子串

 TRIM

裁剪掉前面或后面的字符串

 LOWER

将字符串转换成小写

 UPPER

将字符串变为大写

 

 

实用:

--(一)字符函数
-- dual虚表,因为数据不属于任何一个表,用虚表
--1.concat :字符串拼接  拼接两个字符串,与 || 相同
(1)
select concat("abc","d") from dual;
(2)
select "abc" || "123" from dual;


--2.  initcap: 收字母大写,将一个单词首字母转换大写,其他字母转换成小写
select initcap("hello") from dual;


--3,  instr: 找出字符串位置,从1开始计数
select instr("hello","e") from dual;


--4. length: 字符串长度
select length("abcd") from dual;


--5.替换 replace(字符串,被替换内容,替换内容)
select replace("hello","e","x") from dual;


--6. substr: 截取字符串
--substr("字符串",起始位置),从"起始位置"到"最后"
select substr("abcde",2) from dual;
--substr("字符串",起始位置),"起始位置","长度"
select substr("abcde",2,2) from dual;

--7. trim: 去除两端空格
select length("abcde") from dual;
select length(trim("abcde") ) from dual;


--8.lower: 转换小写
select lower("hEELLo") from dual;

--9.upper: 转换大写
select upper("hEEllO")from dual;

 

 

(二)数值函数

函数

说明

ABS(value)

绝对值

CEIL(value)

大于或等于value的最小整数

FLOOR(value)

小于或等于value的最大整数

MOD(value,divisor)

求模

POWER(value,exponent)

value的exponent次幂

ROUND(value,precision)

按precision 精度4舍5入

SQRT(value)

value 的平方根

TRUNC(value,按precision)

按照precision 截取value

 

实用:

--(二)数值函数
--1. abs(value) 绝对值
select abs(-90) from dual;  --90

--2.ceil(value) 向上取整
select ceil(12.1) from dual;  --13
select ceil(12.9) from dual;

--3.floor(value) 向下取整 (去尾法)
select floor(12.1) from dual;  --12
select floor(12.9) from dual;


--4.mod(value,divisor) 取模(余数) mysql: 10 % 3
select mod(10,3) from dual;  --1


--5.power(value,exponent) 幂次方
select power(2,3) from dual;

--6.round(value,precision) 四舍五入
--round(数值)对数值四舍五入,没有小数为
--round(数值,精度)保留小数为进行四舍五入

select round(12.1) from dual;
select round(12.9) from dual;

--可涉及到精度
select round(12.2383,2) from dual;

--7.sqrt(value) 开平方
select sqrt(16) from dual;

--8.trunc(value,按precision)截取
select trunc(12.32423) from dual;  --12
select trunc(12.3456,2) from dual;  --12.34

 

 

(三)日期函数

   函   数

     描      述

ADD_MONTHS

在日期date上增加count个月

LAST_DAY( date )

返回日期date 所在月的最后一天

MONTHS_BETWEEN(date2,date1)

给出 Date2 - date1 的月数(可以是小数)

NEXT_DAY( date,’day’)

给出日期date之后下一天的日期,这里的day为星期,如:

Mon.(Monday) 星期一
Tue.(Tuesday) 星期二
Wed.(Wednesday) 星期三
Thu.(Thursday) 星期四
Fri.(Friday) 星期五
Sat.(Saturday) 星期六
Sun.(Sunday) 星期天

ROUND(date,’format’)

ROUND函数判断时间的区间

YEAR/YYYY表示判断是否是上下半年  

MONTH/MM判断是否是上下半月

TRUNC(date,’format’)

YEAR/YYYY表示获取这一年的第一天,

MONTH/MM获取这个月的第一天,

DAY获取这个星期的第一天

注意mysql获取当前系统时间:now()

  oracle中使用 sysdate

举例实用:

--(三)日期函数
--1.当前系统时间
select sysdate from dual;

--2.add_months 添加count 个月
select add_months(sysdate,2) from dual;
select add_months(sysdate,-2) from dual;


----2017年1月20日的往前数3个月那天是几月几号
select add_months(to_date("20170120","yyyymmdd"),-3) from dual;


--3.last_day 本月最后一天
select last_day(sysdate) from dual;



--4. to_date 将字符串转换成日期
select to_date("20200202","yyyy-mm-dd") from dual;


--4月份最后一天

select last_day(to_date("20200402","yyyy-mm-dd"))from dual;


--5.months_between 获得两个日期之间月数
select months_between(to_date("2020-04-02 23:59:59","yyyy-mm-dd hh24:mi:ss"),to_date("20200222","yyyymmdd")) from dual;



--你今年几岁了?
--1.获得出生日期距离今日月数
select months_between(sysdate,to_date("1999-12-25","yyyy-mm-dd")) from dual;

--2.获得出生日期距离今日年数(含小数位)
select months_between(sysdate,to_date("1999-12-25","yyyy-mm-dd"))/12  from dual;


--3.向上取值 20.4 ->21
select ceil(months_between(sysdate,to_date("1999-12-25","yyyy-mm-dd"))/12 )from dual;

--4.拼凑"岁"字符串
select ceil( months_between(sysdate,to_date("1999-12-25","yyyy-mm-dd hh24:mi:ss"))/12)|| "岁" from dual;


--方式2
select trunc(months/12) || "岁" || trunc(mod(months, 12)) || "月" ||
       trunc(sysdate - add_months(birth, trunc(months))) || "天" age
  from (select months_between(sysdate, birth) months, birth
          from (select date "1999-12-15" birth from dual));




--6.下一个指定日期 next_day(日期,星期)
--星期日为一周的第一天,可以使用1表示
select next_day(sysdate,"星期日") from dual;

select next_day(sysdate,1) from dual;




--7.四舍五人 日期格式化
--yyyy 四舍五人年, 返回日期,有效数据是年,不需要考虑月和日
select round(sysdate, "yyyy") from dual;

--mm四舍如入 月,返回日期;有效数据是月,不需要考虑日
select round(sysdate, "mm") from dual;



--8. trunc: 格式化(日期截取)
select trunc(sysdate) from dual;
--YEAR/YYYY表示获取这一年的第一天,
select trunc(sysdate, "yyyy") from dual;

--MONTH/MM获取这个月的第一天,
select trunc(sysdate, "mm") from dual;

--DAY获取这个星期的第一天

select trunc(sysdate, "dd") from dual;

 

 

(四)转换函数

   函   数

     描      述

TO_CHAR

转换日期格式到字符串

TO_DATE

按照指定的格式将字符串转换到日期型

TO_NUMBER

数字字串转换到数字

举例使用:

--(四)转换函数
--yyyy 年
--mm 月
--dd 日
--hh 时(12小时)
--hh24 时(24小时)
--mi 分
--ss  秒

--1. to_char 将日期转换字符串
select to_char(1024) from dual;
select to_char(sysdate,"yyyy-mm-dd hh:mi:ss") from dual;


select to_char(to_date("2020-05-27 11:27:33","yyyy-mm-dd 24hh:mi:ss"),"yyyy-mm")
--2.to_date 将字符串转换日期
select to_date("2027-01-01","yyyy-mm-dd") from dual;


--3.to_number 将数字字符串转换数字
select to_number("1024") from dual;

select to_number("1024.24") from dual;

select to_number("1024.2424") from dual;

 

 

(五)其它函数

--(五)其它函数
--空值处理函数  nvl(字段,如果为null显示对应值)
select nvl(t.depname,0),t.depno from DEP t

select nvl(a.usenum,0),a.* from t_account a;

--显示价格表中业主类型ID为1的价格记录,如果上限值为NULL,则显示9999999 
select p.price,p.minnum,nvl(maxnum,999999) 
from t_pricetable p where p.ownertypeid=1; 



--2.nvl2(字段, 不为null显示, 为null 显示)
select nvl2(t.depno,9999,0),t.depno from DEP t


--需求:显示价格表中业主类型ID为1的价格记录,如果上限值为NULL,显示“不限”.
select p.price,p.minnum,nvl2(p.maxnum,to_char(p.maxnum),"不限") from t_pricetable p where p.ownertypeid=1;




--nul2(t.usenum,t.usenum,0) 等效 nul(t.usenum,0)
select nvl2(t.usenum,t.usenum,0),t.* from t_account t;


--3. decode (条件取值)相当于java switch 
select decode(id,1,"哈哈",2,"嘿嘿",3,"哈嘿") from t_area ;


-- select decode(id,1,"男",0,"女") from t_area ;



--需求:显示下列信息(不要关联查询业主类型表,直接判断1 2 3 的值)
select ow.name,decode(ow.ownertypeid,1,"居民",2,"行政事业单位",3,"商业")
as 类型 from t_owners ow;

--第二种写法:case when then 
select ow.name,(case ow.ownertypeid 
when 1 then "居民"
when 2 then "行政事业单位"
when 3 then "商业"
 else "其它"  
 end 
) from t_owners ow;             


--第三种写法:
select name,(case  
              when ownertypeid= 1 then "居民"
              when ownertypeid= 2 then "行政事业" 
              when ownertypeid= 3 then "商业"
            end )
            from T_OWNERS;



--练习;
select ad.id,decode(ad.id,1,"明兴花园",2,"鑫源秋墅") from t_address ad;

select ad.name,decode(ad.name,"明兴花园",1,"鑫源秋墅",2) from t_address ad;

 

 

 

看完恭喜你,又知道了一点点!!!

你知道的越多,不知道的越多! 

~感谢志同道合的你阅读,  你的支持是我学习的最大动力 ! 加油 ,陌生人一起努力,共勉!!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle中单行函数操作详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Oracle中单行函数操作详解

单行函数--PL/SQL (一)字符函数 函    数           说               明  CONCAT 拼接两个字符串,与 || 相同  INITCAP
Oracle中单行函数操作详解
2017-01-27

Oracle中decode函数详解

Oracle中的decode函数是一个条件表达式函数,用于根据给定的条件对一个或多个表达式进行比较,并返回与匹配条件相对应的结果表达式。语法:DECODE(expr, search1, result1, search2, result2,
2023-09-09

SpringJdbcTemplate执行数据库操作详解

JdbcTemplate是Spring框架自带的对JDBC操作的封装,目的是提供统一的模板方法使对数据库的操作更加方便、友好,效率也不错,这篇文章主要介绍了SpringJdbcTemplate执行数据库操作,需要的朋友可以参考下
2022-11-13

Oracle中字符操作函数有哪些

小编给大家分享一下Oracle中字符操作函数有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!字符操作函数 CONCAT
2023-06-03

Oracle中怎么进行数据加密和解密操作

在Oracle中进行数据加密和解密操作通常使用DBMS_CRYPTO包。以下是一个简单的示例,演示如何使用DBMS_CRYPTO包进行数据加密和解密操作:数据加密:DECLAREl_key RAW(128);l_data CLOB;l_en
Oracle中怎么进行数据加密和解密操作
2024-04-08

Oracle中trunc()函数实例详解

目录1、功能描述2、语法2.1、数值处理:2.2、日期处理:总结1、功能描述用于截取时间或者数值,返回指定的值。2、语法2.1、数值处理:格式:trunc(number,[decimals])number : 为必要参数,是
2023-01-13

MySQL视图的概念和操作函数详解

对MySQL数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理,下面这篇文章主要给大家介绍了关于MySQL数据库基本SQL语句教程之高级操作中视图的相关资料,需要的朋友可以参考下
2023-03-03

Python中getattr函数和hasattr函数作用详解

hasattr(object, name)作用:判断对象object是否包含名为name的特性(hasattr是通过调用getattr(ojbect, name)是否抛出异常来实现的)。示例:>>> hasattr(list, 'appen
2022-06-04

如何在SQLite中执行聚合函数操作

在SQLite中执行聚合函数操作非常简单,只需使用SQL语句即可。例如,如果您想计算某个表中某列的平均值,可以使用如下语句:SELECT AVG(column_name) FROM table_name;其中,AVG 是SQLite中的
如何在SQLite中执行聚合函数操作
2024-03-14

Python连接SQL server数据库并进行简单查询的操作详解

这篇文章介绍了使用Python连接SQLServer数据库并执行简单查询的过程。首先,通过pyodbc模块连接数据库,然后创建游标并执行查询。最后,提取结果并打印或存储。示例代码演示了如何连接数据库并提取Customers表中的数据。文章还讨论了参数化查询、事务处理、错误处理和最佳实践等高级用法,以帮助开发者有效地与SQLServer数据库交互。
Python连接SQL server数据库并进行简单查询的操作详解
2024-04-02

MySQL中数据视图操作详解

视图是从一个或多个表(或视图)导出的表。视图一经定义,就可以像表一样被查询、修改、删除和更新。本文就来和大家讲讲MySQL数据视图的一些基本操作,需要的可以参考一下
2022-11-13

编程热搜

目录