Oracle
单行函数的实例练习,基于Oracle自带数据库,用户名分别为hr(主要)和scott。
基本上都做出来了,但还有一道关于人民币转数字的还没有做出来,有知道的留言下哦,
其他地方有错误的请指正。
/*1、将字符串 'abc' 以10位长度输出,不足10位用#补足(分别从左边和右边补足)
2、将字符串' abc ewr 3245 4 '去除两头空格输出
3、将字符串'abc 234 abc abc def abc' 中'abc' 替换为 '###' 输出
4、将数字7433453.52638263 四舍五入后输出
5、将数字743583.345234 中十位数之后数字全部忽略输出
*/
--1、将字符串 'abc' 以10位长度输出,不足10位用#补足(分别从左边和右边补足)
SELECT lpad('abc',10,'#') FROM dual;
SELECT rpad('abc',10,'#') FROM dual;
--2、将字符串' abc ewr 3245 4 '去除两头空格输出
SELECT trim(' abc ewr 3245 4 ') FROM dual;
--3、将字符串'abc 234 abc abc def abc' 中'abc' 替换为 '###' 输出
SELECT replace('abc 234 abc abc def abc','abc','###') FROM dual;
--4、将数字7433453.52638263 四舍五入后输出
SELECT ROUND(7433453.52638263) FROM dual;
--5、将数字743583.345234 中十位数之后数字全部忽略输出
SELECT round(743583.345234,-1) from DUAL;
/*
6、查询hr方案中employees表,将所有员工工资上涨 11.173% 后,四舍五入到十位输出
7、将当前系统时间格式化为'YEAR MONTH DY DAY YYYY-MM-DD HH24:MI:SS'输出
8、查询hr方案中employees表,将入职时间格式化为'YYYY-MM-DD HH24:MI:SS' 显示
9、将当前时间加一年后格式化输出显示
10、两个时间相减后输出
*/
--6、查询hr方案中employees表,将所有员工工资上涨 11.173% 后,四舍五入到十位输出
SELECT round(salary*(1+0.11173),-1)
FROM employees;
--7、将当前系统时间格式化为'YEAR MONTH DY DAY YYYY-MM-DD HH24:MI:SS'输出
SELECT to_char(sysdate,'YEAR MONTH DY DAY YYYY-MM-DD HH24:MI:SS')
FROM dual;
--8、查询hr方案中employees表,将入职时间格式化为'YYYY-MM-DD HH24:MI:SS' 显示
SELECT to_char(hire_date,'YYYY-MM-DD HH24:MI:SS')
FROM employees;
--9、将当前时间加一年后格式化输出显示
SELECT to_char(add_months(sysdate,12),'YYYY-MM-DD')
from dual;
--10、两个时间相减后输出
SELECT to_date(2011,'YYYY')-sysdate
FROM dual;
/*
11、查询hr下employees表中入职时间满10年的员工
12、查询hr下employees表中2000年后入职的员工
13、查询hr下employees表中所有98年3月入职的员工
14、查询hr下employees表中所有在3月入职的人
15、查询当前时间距离 '1998-8-2' 的月数
*/
--11、查询hr下employees表中入职时间满10年的员工
SELECT first_name
FROM employees
where months_between(sysdate,hire_date) > 10*12;
--12、查询hr下employees表中2000年后入职的员工
SELECT *
FROM employees
where to_char(hire_date,'YYYY') >= '2000' ;
--13、查询hr下employees表中所有98年3月入职的员工
--这里要注意用的是to_char 来进行日期比较
SELECT *
FROM employees
WHERE to_char(hire_date,'YYYY-MM') = '1998-03';
--14、查询hr下employees表中所有在3月入职的人
SELECT *
FROM employees
WHERE to_char(hire_date,'MM') ='03';
--15、查询当前时间距离 '1998-8-2' 的月数
SELECT MONTHS_BETWEEN(sysdate,to_date('1998-8-2','YYYY-MM-DD'))
FROM dual;
/*
16、将当前时间减12个月然后输出
17、查询下一个星期一 显示输出
18、查询一个月的最后一天 显示输出
19、查询hr下employees表中入职时间在下半个月的员工
20、查询hr下employees表中上半年入职的员工
*/
--16、将当前时间减12个月然后输出
SELECT add_months(sysdate,-12)
FROM dual;
--17、查询下一个星期一 显示输出
SELECT next_day(sysdate,'星期一')
FROM dual;
--18、查询一个月的最后一天 显示输出
SELECT last_day(sysdate)
FROM dual;
--19、查询hr下employees表中入职时间在下半个月的员工
SELECT *
FROM employees
WHERE to_char(hire_date,'DD') > '15' ;
--20、查询hr下employees表中上半年入职的员工
SELECT *
FROM employees
WHERE to_char(hire_date,'MM') <= '06';
/*
21、将数字825398374.3762 格式化成字符串后输出
22、字符串变数字 'RMB825,398,374.38'
23、查询hr下employees表将员工薪水以 '$999,999,999.00' 格式显示
24、第一个参数是null返回第三个参数,否则返回第二个参数
SELECT nvl2(234, 42, 142) FROM dual
25、两个参数相同返回null,否则返回第一个参数
SELECT nullif('abc','abc') FROM dual
*/
--21、将数字825398374.3762 格式化成字符串后输出
SELECT to_char(825398374.3762)
from dual;
--22、字符串变数字 'RMB825,398,374.38'
--????没有写出来
--23、查询hr下employees表将员工薪水以 '$999,999,999.00' 格式显示
SELECT to_char(salary,'$999,999,999.00')
FROM employees;
--24、第一个参数是null返回第三个参数,否则返回第二个参数
SELECT nvl2(commission_pct,commission_pct,0)
FROM employees;
--25、两个参数相同返回null,否则返回第一个参数
SELECT nullif('aaa','aaa')
FROM dual;
SELECT nullif('aaa','bbb')
FROM dual;
/*
26、查询hr下employees表中frist_name,last_name 长度相同的员工记录
27、查询hr下employees表中first_name,last_name 首字母相同的员工记录
29、employees表中如果员工职位是'IT_PROG'加薪 10 % ,如果员工职位是'ST_CLEAK '加薪 15 % ,如果是'SA_REP' 加薪 20 % .
30、查询hr下employees表中每月支出工资总额(多行函数不能和其他字段一起查询)
*/
--26、查询hr下employees表中frist_name,last_name 长度相同的员工记录
SELECT *
FROM employees
WHERE length(first_name) = length(last_name);
--27、查询hr下employees表中first_name,last_name 首字母相同的员工记录
SELECT *
FROM EMPLOYEES
WHERE substr(first_name,1,1) = substr(last_name,1,1);
--29、employees表中如果员工职位是'IT_PROG'加薪 10 % ,如果员工职位是'ST_CLEAK '加薪 15 % ,如果是'SA_REP' 加薪 20 % .
SELECT first_name, job_id,salary, case job_id when 'IT_PROG' then salary*(1+0.1)
when 'ST_CLEAK' then salary*(1+0.15)
when 'SA_REP' then salary*(1+0.2) else salary end bonus
FROM employees ;
--30、查询hr下employees表中每月支出工资总额(多行函数不能和其他字段一起查询)
SELECT sum(salary) 工资总额
FROM employees;
分享到:
相关推荐
Oracle_PL(SQL)单行函数和组函数及使用
第三章 ORACLE SQL 单行函数 第四章 从多表中查询数据 第五章 用组函数合计数据 第六章 子查询 第七章 操纵数据 第八章 创建和管理表 第九章 内置约束 第十章 创建视图 第十一章 其他数据库对象 第十二章 控制用户...
在SQL中有两种函数一种是单行函数,一种是多行函数.在sql与pl/sql中都自带了很多类型的函数,比如有字符、数字、日期、...下面我们就来分析单行函数,在这里我列举了oracle中一些常用的单行函数进行操作.希望你所有收获:
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
正在看的ORACLE教程是:OraclePL/SQL单行函数和组函数详解。 1 函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 2...
在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类:23 单行函数45 组函数67 本文将讨论如何利用单行函数以及使用规则。89 SQL中的单行函数1011 SQL和PL/SQL中自带很多...
Oracle基础练习题,采用Oracle数据库自带的表,适合初学者,其中包括了一些简单的查询,已经具有Oracle自身特点的单行函数的应用,后面附答案,非常值得一看
里面有详细的oracle函数 1、Oracle数据类型 2、Oracle函数分为单行函数和多行函数两大类(sql_function) 单行函数分类 字符函数 数值函数 日期函数 转换函数 通用函数 函数嵌套 分组函数:集合操作符(了解) 实现...
第7章SQL单行函数 第8章操纵数据 第9章复杂查询 第10章管理常用对象 第三部分PL/SQL 第11章PL/SQL基础 第12章访问Oracle 第13章编写控制结构 第14章使用复合数 据类型 第15章使用游标 第16章...
第7章 sql单行函数 第8章 操纵数据 第9章 复杂查询 第10章 管理常用对象 第三部分 pl/sql 第11章 pl/sql基础 第12章 访问oracle 第13章 编写控制结构 第14章 使用复合数据类型 第15章 使用游标 ...
都可被称为 SQL 或 PL/SQL 语句,函数主要分为两大类:单行函数和组函数。 • 单行函数和组函数详解(1) • 单行函数和组函数详解(2) • 单行函数和组函数详解(3) • 单行函数和组函数详解(4) • 单行函数和组函数...
PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 组函数 本文将...
第7章 sql单行函数 第8章 操纵数据 第9章 复杂查询 第10章 管理常用对象 第三部分 pl/sql 第11章 pl/sql基础 第12章 访问oracle 第13章 编写控制结构 第14章 使用复合数据类型 第15章 使用游标 ...
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
很不错的总结哦,大家多多支持哈 你也可以的,大家共同进步,自己总结的心得
题目包含:1.基本SQL-SELECT语句 2.过滤和排序数据 3.单行函数 4.多表查询 5.分组函数 6.子查询 7.创建和管理表 8.数据处理 9.约束 10.视图 11.数据库对象 12.企业sql笔试题目 等
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
sql语句基础 基本的sql语句 单行函数 子查询 多表查询 组函数
熟悉各种类型单行函数的使用 掌握转换函数的使用 第四章 关联查询 在一张或多张表中使用等值或非等值连接 使用外连接查询 自连接查询 第五章 组函数 定义及有效的使用组函数 使用Group By对查询数据分组 使用...