代码改变世界

Oracle操作

  默默不语  阅读(258)  评论(0编辑  收藏  举报
复制代码
--返回第一个字符的ascii值
select ascii(ename),ename from emp;
--返回ascii对应的字符
select chr(97) from dual;
--将字符串中的首字母大写,其余小写
select initcap(ename), ename from emp;
--所有字母小写
select lower(ename), ename from emp;
--所有字母大写
select upper(ename), ename from emp;
--字符串替换
select replace(ename,'T','*'), ename from emp;
--查找指定字符串所在位置(起始位置,出现次数)(3代表从第三个位置开始查找,包括第三个,)
--可根据起始位置和出现次数
--如果只有一个参数,那么认为是起始位置,而不是第几次出现
select instr(ename,'L'1,2),ename from emp;
--字符串截取(strat从1开始,1代表截取所有,负数代表从末尾截取,-1代表截取最后一个)
select substr(ename,2),ename from emp;
--连接字符串,concat,等同于||
select concat(empno,ename) from emp;
--返回字符个数
select length(ename),ename from emp;
--去空格或指定字符(只能去除单个指定字符,不能去除字符串)
select trim('S' from ename) ,ename from emp;

--很重要的两个函数
--NVL函数(如果comm为null则返回0,如果不为nul则返回comm的值)
select ename,nvl(comm,0) from emp;
--NVL2函数 (如果为null返回0,如果不为空返回100)
select ename,nvl2(comm,1000) comm from emp;
复制代码

练习:

复制代码
--查出所有员工的姓名,首字母大写,其余字母小写
select initcap(ename) ,ename from emp;
--查询出所有员工的姓名,如果姓名中有“S”,全部替换成“8”
select replace(ename,'S','8') ,ename from emp;
--查询出姓名中有两个“L”的员工信息
select instr(ename,'L',1,2),ename from emp ;
select * from emp where instr(ename,'L',1,2)=2;
--查询出所有员工的姓名和职位的前五个字符
select ename,substr(job,0,5),job from emp;
--查询出姓名字符超过5个的员工信息
select * from emp where length(ename)>5;
--查询出所有员工的姓名和年总收入
select ename,(sal+nvl(comm,0))*12 from emp;
复制代码

 

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示