`
sammor
  • 浏览: 409405 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Oracle的SQL单行函数实练学习

阅读更多

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_PL(SQL)单行函数和组函数及使用

    Oracle四大宝典之一:Oracle Sql基础 中文版

    第三章 ORACLE SQL 单行函数 第四章 从多表中查询数据 第五章 用组函数合计数据 第六章 子查询 第七章 操纵数据 第八章 创建和管理表 第九章 内置约束 第十章 创建视图 第十一章 其他数据库对象 第十二章 控制用户...

    oracle常用函数

    在SQL中有两种函数一种是单行函数,一种是多行函数.在sql与pl/sql中都自带了很多类型的函数,比如有字符、数字、日期、...下面我们就来分析单行函数,在这里我列举了oracle中一些常用的单行函数进行操作.希望你所有收获:

    数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf

    数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...

    OraclePL/SQL单行函数和组函数详解

    正在看的ORACLE教程是:OraclePL/SQL单行函数和组函数详解。 1 函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 2...

    Oracle中PL/SQL单行函数和组函数详解数据库开发技术

    在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类:23 单行函数45 组函数67 本文将讨论如何利用单行函数以及使用规则。89 SQL中的单行函数1011 SQL和PL/SQL中自带很多...

    Oracle SQL:经典练习题(附答案)

    Oracle基础练习题,采用Oracle数据库自带的表,适合初学者,其中包括了一些简单的查询,已经具有Oracle自身特点的单行函数的应用,后面附答案,非常值得一看

    oracle(数据类型函数).

    里面有详细的oracle函数 1、Oracle数据类型 2、Oracle函数分为单行函数和多行函数两大类(sql_function) 单行函数分类 字符函数 数值函数 日期函数 转换函数 通用函数 函数嵌套 分组函数:集合操作符(了解) 实现...

    Oracle 11g SQL和PL SQL从入门到精通〖送源代码〗

     第7章SQL单行函数  第8章操纵数据  第9章复杂查询  第10章管理常用对象 第三部分PL/SQL  第11章PL/SQL基础  第12章访问Oracle  第13章编写控制结构  第14章使用复合数 据类型  第15章使用游标  第16章...

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(二)

     第7章 sql单行函数  第8章 操纵数据  第9章 复杂查询  第10章 管理常用对象 第三部分 pl/sql  第11章 pl/sql基础  第12章 访问oracle  第13章 编写控制结构  第14章 使用复合数据类型  第15章 使用游标 ...

    Oracle PL_SQL语言初级教程

    都可被称为 SQL 或 PL/SQL 语句,函数主要分为两大类:单行函数和组函数。 • 单行函数和组函数详解(1) • 单行函数和组函数详解(2) • 单行函数和组函数详解(3) • 单行函数和组函数详解(4) • 单行函数和组函数...

    Oracle函数列表速查

    PL/SQL单行函数和组函数详解  函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类:  单行函数  组函数  本文将...

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(一)

     第7章 sql单行函数  第8章 操纵数据  第9章 复杂查询  第10章 管理常用对象 第三部分 pl/sql  第11章 pl/sql基础  第12章 访问oracle  第13章 编写控制结构  第14章 使用复合数据类型  第15章 使用游标 ...

    数据库开发 Oracle数据库 SQL开发教程 全套PPT课件 共20个章节.rar

    数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...

    PLSQL单行函数和组函数详解

    很不错的总结哦,大家多多支持哈 你也可以的,大家共同进步,自己总结的心得

    sql笔试面试题目(oracle,含答案)

    题目包含:1.基本SQL-SELECT语句 2.过滤和排序数据 3.单行函数 4.多表查询 5.分组函数 6.子查询 7.创建和管理表 8.数据处理 9.约束 10.视图 11.数据库对象 12.企业sql笔试题目 等

    数据库开发 Oracle数据库 SQL开发教程 第15章 视图(共23页).pdf

    数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...

    oracle数据库sql基础

    sql语句基础 基本的sql语句 单行函数 子查询 多表查询 组函数

    Oracle数据库Sql语句详解大全

    熟悉各种类型单行函数的使用 掌握转换函数的使用 第四章 关联查询 在一张或多张表中使用等值或非等值连接 使用外连接查询 自连接查询 第五章 组函数 定义及有效的使用组函数 使用Group By对查询数据分组 使用...

Global site tag (gtag.js) - Google Analytics