Orcale 常用函数

本文详细介绍了SQL中常用字符串操作函数(如LOWER、UPPER、INITCAP、CONCAT等)和日期函数(如SYSDATE、TRUNC、ROUND等),通过具体示例展示如何在数据库查询中灵活运用这些函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    
--lower把大写转小写  upper 把小写转大写
select * from emp where lower(ename)='smith';

select upper('helloworld') from dual;

select lower('HELLOWORLD') from dual;

--INITCAP使串中的所有单词的首字母变为大写 
select INITCAP('sql course') from dual

--CONCAT 连接两个字符串;
select concat('Hello','World') from dual

--取子字符串,从start开始,取count个
select substr('HelloWorld',1,5)  from dual

--取子字符串,从4开始取到末尾
select substr('HelloWorld',4)  from dual

--LENGTH 返回字符串的长度;
select length('HelloWorld')  from dual

--INSTR(string,char) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置,从1开始;
select INSTR('HelloWorld','H')  from dual

--RPAD在列的右边粘贴字符 LPAD在列的左边粘贴字符
select RPAD(sal,8,'*') from emp

select lpad(sal,8,'*') from emp

--TRIM删除首尾的空字符串
select length(trim('  HelloWorld  ')) from dual

--TRIM删除首尾的H
select trim('H' from 'HelloWorldH') from dual

--TRIM删除首的H
select trim(leading 'H' from 'HelloWorldH') from dual

--TRIM删除尾的H
select trim(trailing 'H' from 'HelloWorldH') from dual

--TRIM删除首尾的H
select trim(both 'H' from 'HelloWorldH') from dual

--REPLACE('string','s1','s2')
--string 希望被替换的字符或变量 
--s1 需要被替换的字符串 s2 替换的字符串
select REPLACE('HelloWorld','ll','FF') from dual

--数值函数
select Round(45.926,2) from dual

--截断
select TRUNC(45.926,2) from dual

--取模
select  MOD(1600,300)  from dual

--日期函数
select sysdate from dual

--得到下一小时 0分0秒
select trunc(sysdate+1/24,'hh') from dual;

--得到下一天  0时0分0秒
select trunc(sysdate+1) from dual;


--得到下一月 1号0时0分0秒
select last_day(sysdate) from dual;
select trunc(last_day(sysdate)+1) from dual;

--得到下一年 1月1号0时0分0秒
select add_months(trunc(sysdate,'yyyy'),12) from dual;

--默认按照 dd进行 4舍5入. 超过中午 12点就进入下一天.
select ROUND(SYSDATE) from dual

select ROUND(SYSDATE,'mm')   from dual

select ROUND(SYSDATE,'yyyy')  from dual

--截断日期
select trunc(SYSDATE,'mm')   from dual

select trunc(SYSDATE,'yyyy')  from dual

--转换函数: to_number  to_char  to_date
select to_number('123') from dual;

select to_char(123) from dual;

select to_char(sysdate,'yyyy-mm-dd hh:mi:ss DAY AM') from dual;
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

select to_date('2012-06-13 03:58:52','yyyy-mm-dd hh24:mi:ss') as currdate from dual;


--nvl
select ename,sal,nvl(comm,0) as comm,(sal+nvl(comm,0))*12 from emp;

--nvl2
select ename,sal,nvl2(comm,comm,0) from emp;

--case
select * from emp;

select ename,job,sal,
    case job when 'SALESMAN' THEN  sal*0.9 
            when 'MANAGER' then sal*0.85
            when 'ANALYST' then sal+100
            when 'CLERK' then sal+200
    else sal end 
    as t_sal  --别名
 from emp 
 
   select ename,job,sal,
     decode( job, 'SALESMAN',   sal*0.9, 
                'MANAGER',  sal*0.85,
                'ANALYST',  sal+100,
                'CLERK',  sal+200
           )as t_sal  --别名
     from emp
     
     
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值