验证中...
私信发送成功
语言: SQL
分类: 数据库相关
最后更新于 2017-09-13 22:16
单行函数
原始数据 复制代码
----------------------------------------单行函数----------------------------------------
---------------------字符处理函数-----------------------
--需求1:把ename字段转换成小写
select lower(ename) from emp;
--需求2:查询scott用户的用户名称和账户状态
select username,account_status from dba_users where username='scott'; --查询不到
select username,account_status from dba_users where lower(username)='scott'; --可查询到
--字符转换大写
select upper('aaa') from dual;
--将每个单词的首字母转换成大写(单词之间使用空格隔开)
select initcap('jiang xi nong da') from dual;
--字符串连接
select concat('jiang',concat('xi','nongda')) from dual;
--字符串截取substr(input,m,[n]) m:截取的起始位置 n:截取的字符个数
select substr('我爱中国', 2) from dual;
select substr('我爱中国', 2,1) from dual;
--字符长度
select length('我爱中国') from dual;
--查找字符出现的位置instr(input,char,[m],[n]) m:查询的其实位置 n:查询第几次出现
select instr('我爱中国,我爱中国的老师','爱') from dual;
select instr('我爱中国,我爱中国的老师','爱',1,2) from dual;
--字符串替换replace(input,char1,char2)
select replace('我爱中国,我爱中国老师','爱','更爱') from dual;
--从左边或者右边使用指定字符串填充 lpad(input,n,char) rpad(input,n,char) n:填充后的字符长度(汉字算2个字符)
select lpad('我爱中国',10,'a') from dual;
select rpad('我爱中国',10,'a') from dual;
---------------------数字日期函数-----------------------
--数字函数
--四舍五入函数round(n,i) n:数字 i:小数点长度
select round(22.5) from dual;
select round(22.555,2) from dual;
--截取数字trunc(n,i) n:数字 i:小数点长度
select trunc(22.99) from dual;
select trunc(22.559,2) from dual;
--日期函数
--获取当前时间
select sysdate from dual;
--想知道雇员表中,部门编号为60的雇员,截止到今天共工作了多少周,则可以使用如下的SQL语句
--共工作多少周=当前时间 - 入职时间 / 7 取整
select ename,round((sysdate-hiredate)/7) as weeks from emp where ename='SMITH'
select * from emp;
--下周三是几号? 以周日开始
select next_day(sysdate,1) from dual;
--其他日期函数请查看帮助文档
---------------------转换函数-----------------------
--强制换换to_char
--需求1:转换货币格式
select to_char(sal,'$99,999.99') from emp;
--需求2:格式化日期格式
select to_char(hiredate,'YYYY-MM-DD HH:MI:SS') from emp;
select to_char(sysdate,'YYYY-MM-DD HH:MI:SS') from dual;
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;
--需求3:查询入职日期在‘1981-2-20 12:34:56’之后的员工的姓名和入职日期
select ename,hiredate from emp where hiredate>to_date('1981-2-20 12:34:56','YYYY-MM-DD HH24:MI:SS');
--需求4:将指定参数转换成number类型
select sal from emp where sal>to_number('$1,250.00','$9,999.99');
---------------------通用函数-----------------------
--nvl函数 NVL(参数1,参数2)
select nvl(null,'空') from dual;
select nvl('非空','我不会输出') from dual;
--nvl2函数 NVL2(参数1,参数2,参数3)
--通用函数 nvl函数的增强版本 COALESCE(参数1,...,参数n)
select COALESCE(null,null,null,null,100) from dual;

评论列表( 0 )

你可以在登录后,对此项目发表评论