app开发者平台在数字化时代的重要性与发展趋势解析
854
2022-11-24
Oracle-单行函数大全
文章目录
一、字符串函数
1、查询学生的姓名并大写2、查询学生的姓名并小写3、将"helloword"首字母大写4、查询所有的学生姓名并首字母大写5、查询所有学生的姓名,并显示姓名的长度6、查询所有学生的姓名,并将“张三”改为“李四”7、将"hello word"中的空格去除9、查询出所有学生的姓氏
二、数值函数
1、将123.4567保留两位小数2、将123.4567保留小数点前两位,小于5的舍去3、将-123.65取整数4、将123.4567直接截取为两位小数5、将-123.65直接截取为整数6、将10与3取模
三、日期函数
1、查询当前日期2、查询三天后的日期3、查询两个日期之间相差的月数4、查询两个日期之间相差的年数5、查询当前日期5个月后的日期6、查询当月的最后一天7、查询下个星期三
四、转换函数
1、将当前日期格式化为yyyy-mm-dd格式的字符串2、查询当前日期的年份3、将“1998-09-27”转换为日期格式4、将“1”转换为数字格式
五、通用函数
1、查询同学的姓名,如果姓名为空就用“张三”代替2、查询同学年龄为空的就用0代替3、查询学生的性别,并将“男”对应“man”,将“女”对应“woman”
六、总结
一、字符串函数
转换为大写函数:upper 转换为小写函数:lower 首字母变为大写:initcap 计算字符串长度:length 字符串替换:replace(类,要替换的值,替换为值) 字符串截取:substr(列,起始点,长度)
1、查询学生的姓名并大写
select upper(name) from student;
2、查询学生的姓名并小写
select lower(name) from student;
3、将"helloword"首字母大写
注意dual是oracle自带的一张表
select initcap('helloword') from dual;
结果:Helloword
4、查询所有的学生姓名并首字母大写
以下两种都可以
select initcap(name) from student;
5、查询所有学生的姓名,并显示姓名的长度
select name, length(name) from student;
6、查询所有学生的姓名,并将“张三”改为“李四”
select replace(name,'张三','李四') from student;
7、将"hello word"中的空格去除
select replace('hello word',' ','') from dual;
9、查询出所有学生的姓氏
注意,截取字符初始是从1开始的,如果初始值写为0也会默认从1开始
select substr(name,1,1) from student;
二、数值函数
四舍五入:round(数据,保留小数位) 直接截取小数位,不进行四舍五入:trunc(数据,保留小数位) 取模函数:mod(被除数,除数)
1、将123.4567保留两位小数
select round(123.4567,2) from dual;
结果:123.46
2、将123.4567保留小数点前两位,小于5的舍去
select round(123.4567,-2) from dual;
结果:100
3、将-123.65取整数
select round(-123.65) from dual;
结果:-124
4、将123.4567直接截取为两位小数
select trunc(123.4567) from dual;
结果:123.45
5、将-123.65直接截取为整数
select trunc(-123.65) from dual;
结果:-123
6、将10与3取模
select mod(10,3) from dual;
结果:1
三、日期函数
oracle自带的当前日期数据列:sysdate 计算两个日期之间相差的月份:months_between(日期1,日期2) 增加若干月后的日期:add_months(日期,月数) 查询当月的最后一天:last_day(日期) 计算下一个指定的日期:next_day(日期,一周时间数)
1、查询当前日期
注意:这里查询的是oracle数据库所安装在的电脑上的日期,比如oracle安装在服务器上,这样你用自己本地的电脑远程查询数据库的日期和自己本机电脑日期会有差距,一般为1分钟左右。
select sysdate from dual;
2、查询三天后的日期
select sysdate + 3 from dual;
3、查询两个日期之间相差的月数
select months_between(date1,date2) from dual;
4、查询两个日期之间相差的年数
select trunc(months_between(date1,date2)/12) years from dual;
5、查询当前日期5个月后的日期
select add_months(sysdate,5) from dual;
6、查询当月的最后一天
select last_day(sysdate) from dual;
7、查询下个星期三
select next_day(sysdate,'星期三') from dual;
四、转换函数
转换为字符串:to_char() 转换为日期:to_date() 转换为数字:to_number()
1、将当前日期格式化为yyyy-mm-dd格式的字符串
select to_char(sysdate,'yyyy-mm-dd') from dual;
2、查询当前日期的年份
select to_char(sysdate,'yyyy') year from dual;
3、将“1998-09-27”转换为日期格式
select to_date('1998-09-27','yyyy-mm-dd') from dual;
4、将“1”转换为数字格式
select to_number('1') from dual;
五、通用函数
如果为空则使用定义的值,如果不为空则用原来的值:nvl(列,定义值) 多值判断:decode(列,匹配内容1,显示内容1,匹配内容2,显示内容2)
1、查询同学的姓名,如果姓名为空就用“张三”代替
select nvl(name,'张三') from student;
2、查询同学年龄为空的就用0代替
select nvl(age,0) from student;
3、查询学生的性别,并将“男”对应“man”,将“女”对应“woman”
select decode(sex,'男','man','女','woman') from student;
六、总结
这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~