首页 > 其他 > 详细

单行函数

时间:2020-03-21 18:29:12      阅读:39      评论:0      收藏:0      [点我收藏+]

SQL中不同类型的函数

在select语句中使用字符,数字,日期和转换函数

使用条件表达式

 

单行函数:字符  通用   转换  日期   数值

 

--字符:

-- 控制大小写   lower   upper   initcap

SELECT lower( ‘AFANGFANG‘),upper(‘AFANGFANGmiaomiao‘) ,initcap(‘AFANGFANG MIAOMIAO‘) FROM dual;

LOWER(AFANGFANG) UPPER(AFANGFANGMIAOMIAO) INITCAP(AFANGFANGMIAOMIAO)
------------------ -------------------------- ----------------------------
afangfang          AFANGFANGMIAOMIAO          Afangfang Miaomiao          

--应用

 select  last_name from employees where upper(last_name) = ‘KING‘;

LAST_NAME              
-------------------------
King                     
King                     

 

--  字符控制函数

函数 结果
concat(‘Hello‘,‘World‘) HelloWorld              拼接
substr(‘HelloWorld‘,1,6) HelloW                   第一位开始  截6个字符
length(‘HelloWorld‘) 10
instr(‘HelloWorld‘,‘W‘) 6                          字符在字符串首次出现的位置            select instr(‘HelloWorld‘,‘l‘) from dual;   3
lpad(salary,10,‘*‘) *****24000           给10个位不足的用*填   填左边        select employee_id,last_name,lpad(salary,10,‘ ‘) from employees; 
rpad(salary,10,‘*‘) 24000*****
trim(‘H‘ from ‘HelloWorLdH‘) elloWorLd              去除首尾的                                  select  trim(‘H‘ from ‘HelloWorLdH‘)  from dual;  
replace(‘abcedd‘,‘d‘,‘m‘) abcemm                 全部替换                                    select replace(‘abcedd‘,‘d‘,‘m‘)  from dual;  

 

 

 

 

 

 

 

 

--   数字函数

--round 四舍五入

select round(435.45,1),round(435.45),round(435.45,-1) from dual;

ROUND(435.45,1) ROUND(435.45) ROUND(435.45,-1)
--------------- ------------- ----------------
          435.5           435              440

 

-- trunc 截断

select trunc(435.45,1),round(435.45),round(435.45,-1)from dual;

TRUNC(435.45,1) ROUND(435.45) ROUND(435.45,-1)
--------------- ------------- ----------------
          435.4           435              440

 

-- mod 求余

select mod(1200,100)from dual;

MOD(1200,100)
-------------
            0

select mod(1200,500)from dual;

MOD(1200,500)
-------------
          200

 

-- 日期的数学运算:在日期上加上或者减去一个数字结果仍为日期

--                              两个日期相减返回日期之间相差的天数(日期不允许做加法运算, 无意义)

--                             可以用数字除去24来向日期中加上或减去的天数

--查工作的天数

select employee_id, last_name, trunc(sysdate-hire_date) worked_days from employees;

EMPLOYEE_ID LAST_NAME                 WORKED_DAYS
----------- ------------------------- -----------
        100 King                            11966
        101 Kochhar                         11139
        102 De Haan                          9929
        103 Hunold                          11035

 

--查工作月数

select employee_id, last_name, (sysdate-hire_date)/30 worked_days1, months_between(sysdate,hire_date) worked_days2 from employees;

-- 一般使用后面的(准确)select employee_id, last_name,months_between(sysdate,hire_date) worked_days2 from employees;

EMPLOYEE_ID LAST_NAME                 WORKED_DAYS1 WORKED_DAYS2
----------- ------------------------- ------------ ------------
        100 King                       398.8906821   393.152273
        101 Kochhar                    371.3240154          366
        102 De Haan                    330.9906821  326.2813053
        103 Hunold                     367.8573488  362.6038859

 

--来公司的员工,hire_date是每个月倒数第二天来公司的有哪些?

select last_name ,hire_date from employees where hire_date = last_day(hire_date)-1;

LAST_NAME                 HIRE_DATE
------------------------- ---------
Atkinson                  30-OCT-97
Tucker                    30-JAN-97
Olsen                     30-MAR-98
King                      30-JAN-96

 

--  转换函数:数据类型转换 : 隐性 & 显性

-- 隐式转换:

           select ‘12‘+2 from dual;

    12+2
----------
        14

 

-- 显示转换:

技术分享图片

date转换为char型的:where to_char(hire_date,‘yyy"年"-mm"月"-dd"日"‘) = ‘1994年- 03月-09日‘

 

 

char转换为date型的:where to_date(‘1994-03-23‘,‘yyyy-mm-dd‘) =hire_date; 

 

 

numberhe char之间的转换:

select   to_char(12343253443.77,999,999,999,999,999,99) from dual;

TO_CHAR(12343253443.77,999,999,999,999,999.99)
------------------------------------------------
      12,343,253,443.77   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

单行函数

原文:https://www.cnblogs.com/afangfang/p/12540709.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!