Oracle 单行函数

来源:互联网 发布:混沌骑士 知乎 编辑:程序博客网 时间:2024/05/16 17:54
oracle函数(单行函数)1、字符函数-- 大小写字符转换函数-- LOWER(column|expression) 将列或者表达式转换为小写形式select lower('SQL Function') from dual;-- UPPER(column|expression) 将列或者表达式转换为大写形式select upper('SQL Function') from dual;-- INITCAP(column|expression) 将列或者表达式的首字母换为换大写select INITCAP('sql function') from dual;-- 还可以将函数带入WHERE子句select employee_id,last_name,DEPARTMENT_ID from EMPLOYEESwhere lower(last_name)='whalen';-- CONCAT(column1|expression1,column2|expression2) 将两个列或表达式连接起来select concat('Him last name is:',last_name) from employees;-- SUBSTR(column|expression,m{,n}) 字符串截取 m:从m位置开始截取 n:截取长度是n(n可以省略,如果n省略则截取到最后长度)select employee_id,substr(job_id,3) from employees;select employee_id,substr(job_id,3,2) from employees;-- LENGTH(column|expression) 返回字符的长度select LENGTH('Hello world!') from dual;-- INSTR(column|expression,str{,m}{,n}) 检索str在列或表达式中出现的位置,m(数字,选填,表示从m开始检索,默认1)n(数字,选填,表示显示第n次出现的位置,默认1)select INSTR('Hello world! we are family!','w') from dual;select INSTR('Hello world! we are family!','w',1,2) from dual;-- LPAD(column|expression,n,str) RPAD(column|expression,n,str) LPAD左填充,RPAD右填充 ,n:要返回的字符串的长度,str:填充字符串内容select LPAD('2500',10,'0') from dual;select RPAD('2500',10,'*') from dual;-- TRIM(trimStr FROM trimSource|column|expression) 去掉列或表达式左右的空格,或者将trimStr从trimSource的左边或者右边去掉select TRIM('     Hellow world     ') from dual;select TRIM('H' FROM 'Hellow world') from dual;-- REPLACE(column|expression,searchStr,replaceStr) 将列或者表达式中的字符串searchStr,替换成replaceStrselect replace('Hello world!','l','5') from dual;select replace(first_name,'C','5') from employees;-- 综合:显示员工的姓 名连接在一起的名字、姓的长度、字母A在姓中出现的位置,条件是从job_id的第四个位置截取的字符串转换为小写后等于rep的所有数据select employee_id,concat(first_name,' '||last_name) as "Name",Job_id,Length(Last_name),Instr(last_name,'a') AS "Contains 's a?"from employeesWHERE lower(subStr(job_id,4))='rep';2、数字函数-- 数字函数-- ROUND(column|expression,n) 四舍五入取小位点后面n位置,返回一个值 ,如果n=0则在小数点的十分位四舍五入,最终取得一个整数,n=-1则在小数点前一位即个位进行四舍五入select ROUND(169.367,2) from dual;select ROUND(169.678,0) from dual;select ROUND(169.123,-1) from dual;-- TRUNC(column|expression,n) 对列或者表达式舍掉小数位数n位,返回一个值select TRUNC(169.167,2) from dual;select TRUNC(169.987,-1) from dual;-- MOD(m,n) 求余m:被除数,n:除数select MOD(123,12) from dual;select MOD(1600,300) from dual;3、日期函数-- 日期函数-- sysdate 返回当前数据库服务器的时间,current_date 返回当前会话的时间select sysdate from dual;select current_date from dual;-- 日期操作-- date + number  返回 date  给日期加几天select sysdate + 3 from dual;-- date - number  返回 date  给日期减几天 select sysdate - 3 from dual;-- date - date    返回 数字   表示两个日期之间相差多少天select employee_id,sysdate-hire_date from employees;-- date + number/24 返回date  表示给日期添加几个小时select sysdate + 15/24 from dual;-- 例:显示员工所参加工作以来工作的所有周数select employee_id,(sysdate-Hire_date)/7 as "work weeks" from employees;-- MONTHS_BETWEEN(column|date1,column|date2) 返回两个日期之间相差多少个月,可能是小数select months_between(sysdate,'2015-01-01') from dual;select months_between('2015-05-04','2015-01-01') from dual;-- ADD_MONTHS(column|date,n) 为日期添加几个月,如为负的话就是减几个月select add_months('2015-05-01',3) from dual;select add_months('2015-05-01',-3) from dual;-- NEXT_DAY(date,char) 查找从date开始的下一个星期几的日期,char 星期几select next_day('2015-05-03','星期六') from dual;-- LAST_DAY(date) 返回date日期所在月的最后一天select last_day(sysdate) from dual;-- ROUND(date,'MONTH') 对天数四舍五入,如果天数部分是1-15则返回的日期是当前月的第一天,如果是16-31则返回的日期是下月的第一天select round(sysdate,'MONTH') from dual;-- ROUND(date,'YEAR') 对月分四舍五入,如果月份在1-6个月则返回当前年的1月1号,如果是7-12则返回下一年的1月1号select ROUND(sysdate,'YEAR') from dual;-- TRUNC(date,'MONTH') 舍去天数部分,返回当前月的第一天select trunc(sysdate,'MONTH') from dual;-- TRUNC(date,'YEAR') 舍部月数和天数部分,返回当前年份的1月1日select trunc(sysdate,'year') from dual;

0 0
原创粉丝点击