单值函数

单值函数哑表 dual 是一个虚拟表 用来构成 select 的语法规则 oracle 保证 dual 里面永远只有一条记录 单值函数 1 字符函数 lower 把字符转换成小写 upper 把字符转换成大写 initcap 把字符串首字母转换为大写 concat 把俩个字符串连接在一起 类似之前的 的作用 substr 截取字符串 length 获得字符串长度 nvl 替换列中为 null 的值 例子 1

大家好,我是讯享网,很高兴认识大家。

哑表: dual是一个虚拟表,用来构成select的语法规则,
oracle保证dual里面永远只有一条记录。

单值函数

1.字符函数


讯享网

lower     把字符转换成小写
upper     把字符转换成大写
initcap   把字符串首字母转换为大写
concat    把俩个字符串连接在一起(类似之前的||的作用)
substr    截取字符串
length    获得字符串长度
nvl       替换列中为null的值

例子:
1.把‘HELLO’转换为小写
select lower(‘HELLO’)
from dual;
2.把s_emp表中的last_name列的值转换为小写
select lower(last_name) 
from dual;
3.把‘world’转换为大写
select upper(‘world’)
from dual;
4.把s_emp表中的last_name列的值转换为大写
select upper(last_name)
from dual;
5.查询s_emp表中名字为Ngao的人信息
select last_name
from s_emp
where upper(last_name)=‘NGAO’;
或者
select last_name
from s_emp
where lower(last_name)=‘ngao’;
6.把‘hELLO’转换为首字母大写,其余字母小写
select initcap(‘hELLO’)
from dual;
7.把‘hello’和‘world’俩个字符串连接到一起,并且起个别名为msg
select concat(‘hello’,‘world’) msg
from dual;
8.把first_name和last_name俩个列的值连接到一起
select concat(first_name,last_name) name
from s_emp;
9.截取‘hello’字符串,从第2个字符开始(包含第二个字符),截取后面连续的3个字符
select substr(‘hello’,2,3)
from dual;
10.获得‘world’字符串的长度
select length(‘world’)
from dual;
11.用0替换s_emp表中commission_pct列的空值
select nvl(commission_pct,‘0’)
from s_emp;

2.数字函数
round 四舍五入
round(arg1,arg2)
第一个参数表示要进行四舍五入操作的数字
第二个参数表示保留到哪一位
trunc 截取
trunc(arg1,arg2)
   和round的用法一样,但是trunc只舍去不进位
mod  取余
mod(arg1,arg2)
   第一个参数表示要进行取余操作的数字
   第二个参数表示参数1和谁取余


例子:
1.保留到小数点后面2位
select round(45.932,2)   
from dual;
—————–
45.93
2. 保留到个位 (个十百千万…)
select round(45.932,0)
from dual;
—————
 46
3. 保留到十位 (个十百千万…)
select round(45.923,-1)
from dual;  
—————-
 50
4.截取到小数点后面2位
 select trunc(45.929,2)
 from dual;
 —————
 45.92
5.截取到个位 (个十百千万…)
 select trunc(45.923,0)
 from dual;
 —————
45


6.截取到十位 (个十百千万…)
 select trunc(45.923,-1)
 from dual;
 —————-
40

7.把10和3进行取余 (10除以3然后获取余数)
 select mod(10,3)
 from dual;  
———-
1
 
 
3.日期函数
sysdate 关键字表示系统的当前时间,对其进行加减操作的时候
单位是天

months_between  俩个日期之间相差多少个月(单位是月)
add_months      返回一个日期数据:表示一个时间点,往后推x月的日期
next_day        返回一个日期数据:表示一个时间点后的下一个星期几在哪一天
last_day        返回一个日期数据:表示一个日期所在月份的最后一天
round           对日期进四舍五入,返回操作后的日期数据(不能使用默认的日期格式,会和数字的round函数冲突)
trunc           对日期进行截取 和round类似,但是只舍弃不进位

例子:
1.30天之后和现在相差多少个月
select months_between(sysdate+30,sysdate)
from dual;
2.‘01-2月-2016’往后推2个月
select add_months(‘01-2月-2016’,2)
from dual;
3.当前时间往后推4个月(往前推3个月)
select add_months(sysdate,4(-3))
from dual;
4.离当前时间最近的下一个星期5是哪一个天
select next_day(sysdate,‘星期五’)
from dual;
5.当前日期所在月份的最后一天(月底)
select last_day(sysdate)
from dual;
6.把当前日期四舍五入到月
select round(sysdate,‘month’)
from dual;
7.把当前日期截取到年
select trunc(sysdate,‘year’)
from dual;


4.类型装换函数
to_char        把日期转换为字符
to_char        把数字转换为字符
to_number   把字符转换为数字
to_date        把字符转换为日期

日期格式:
 yyyy:四位数的年份
 rrrr:四位数的年份
 yy:两位数的年份
 rr:两位数的年份
 mm:两位数的月份(数字)
 D:一周的星期几
 DD:一月的第几天
 DDD :一年的第几天
 YEAR:英文的年份
 MONTH:英文全称的月份
 mon:英文简写的月份
 ddsp:英文的第几天(一个月的)
 ddspth:英文序列数的第几天(一个月的)
 DAY:全英文的星期
 DY:简写的英文星期
 hh:小时
 mi:分钟
 ss:秒


例子:

1.把当前日期按照指定格式转换为字符串
select to_char(sysdate,‘yyyy’)
from dual;

select to_char(sysdate,‘dd-mm-yy’)
from dual;

select to_char(sysdate,‘yy-mm-dd’)
from dual;
2. 把数字转换为字符
select to_char(salary,‘ \(999,999.00&#39;)  <br /> <span style="white-space:pre"></span>from s_emp; <br /> <span style="white-space:pre"></span> <br /> <span style="white-space:pre"></span>fm表示去除结果显示中的开始的空格 <br /> <span style="white-space:pre"></span>select to_char(salary,&#39;fm\)999,999.00’) 
from s_emp;

L表示系统本地的货币符号
select to_char(salary,‘fmL999,999.00’) 
from s_emp;

3.把字符转换为数字
select to_number(‘1000’)
from dual;

4.把字符转换为日期
select to_date(‘10-12-2016’,‘dd-mm-yyyy’)
from dual;




小讯
上一篇 2025-03-26 20:06
下一篇 2025-03-22 14:22

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/12763.html