`
sammor
  • 浏览: 412002 次
  • 性别: 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数据库中,SQL 和 PL/SQL 提供了大量的内置函数,这些函数可以极大地提高开发效率和简化查询逻辑。根据处理数据的不同方式,这些函数可以分为...

    Oracle常用单行函数

    总的来说,Oracle的单行函数极大地丰富了SQL查询的能力,使得开发者能够更灵活地处理和展示数据。熟练掌握这些函数,对于提升数据库操作的效率和代码质量至关重要。在实际开发中,根据需求灵活运用这些函数,可以...

    oracle第4章 单行函数

    在Oracle数据库的学习过程中,了解并掌握单行函数是非常重要的一步。单行函数是指针对每一行的数据进行处理,并返回一个处理结果的函数。这类函数在查询语句中非常常见,能够帮助我们更灵活地处理数据,提高查询效率...

    SQL 单行函数介绍

    ### SQL 单行函数详解 ...通过对单行函数的学习,我们可以更好地利用 SQL 来解决实际问题,提高工作效率。未来的学习中,我们还可以深入了解多行函数以及如何结合使用单行和多行函数来实现更复杂的数据处理需求。

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

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

    Oracle查询练习(单行,函数查询)

    在这个“Oracle查询练习(单行,函数查询)”中,我们将深入探讨两种关键的查询技术:单行函数和组函数。 单行函数主要应用于对单个值进行操作并返回一个新值。这些函数广泛用于数据转换、计算和格式化。例如,`...

    ORACLE单行函数和组函数

    ### ORACLE单行函数和组函数详解 #### 一、概述 在Oracle数据库中,函数是一种重要的编程元素,用于执行特定任务并返回结果。根据其处理数据的方式不同,可以将Oracle函数大致分为两类:单行函数和组函数(也称聚合...

    oracle 和sql Server 函数对比

    - 两者都使用`ABS`函数,但Oracle需要`FROM DUAL`来执行单行查询。 - 示例:Oracle中`SELECT ABS(-1) FROM DUAL`;SQL Server中`SELECT ABS(-1)`。 3. **向上取整** - Oracle使用`CEIL`函数,SQL Server使用`...

    ORACLE中的经典SQL及函数

    首先,我们关注的是SQL中的单行函数。这些函数主要用于处理单行数据,包括字符、数字、日期、转换和混合类型等,可以应用于SELECT、WHERE、ORDER BY等子句。例如,`TO_CHAR`函数用于格式化日期或数字,`UPPER`函数将...

    oracle03单行函数.ppt

    Oracle数据库中的单行函数是SQL查询中不可或缺的一部分,它们用于处理单行数据并返回单一结果。这些函数可以操作字符、数字和日期数据类型,帮助我们完成数据转换、格式化和计算等多种任务。以下是对这些单行函数的...

    PLSQL单行函数和组函数详解

    本篇文章将详细讲解PL/SQL中的单行函数和组函数。 首先,单行函数是针对单行数据进行操作的函数,它们可以应用于SQL查询的不同部分,如SELECT、WHERE、ORDER BY等。例如,`TO_CHAR`函数用于格式化日期或数值输出,`...

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

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

    oracle总结,PLSQL单行函数和组函数详解

    总的来说,理解并熟练运用Oracle的单行函数和组函数对于数据库管理和开发至关重要。通过这些函数,我们可以更有效地处理数据,创建复杂的查询,优化性能,以及构建复杂的业务逻辑。不断学习和实践,将有助于提高你在...

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

    通过这一章的学习,开发者能熟练运用单行函数处理Oracle数据库中的字符数据,提升SQL查询的灵活性和效率。随着对更多函数的掌握,如数值函数、日期函数等,将能更全面地操控数据库中的数据,满足各种复杂的查询需求...

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

    2. **单行函数应用**:Oracle数据库提供了一系列的单行函数,如`TO_CHAR()`用于格式化日期或数值,`UPPER()`和`LOWER()`用于大小写转换,`LENGTH()`计算字符串长度等。在实际练习中,可能需要使用这些函数来处理数据...

    Oreacle数据库单行函数练习题(包答案)

    ### Oracle数据库单行函数知识点详解 #### 一、数值处理函数 **1. ROUND 函数** - **功能描述:** `ROUND` 函数用于对数值进行四舍五入操作,可以指定四舍五入的精度。 - **语法结构:** `ROUND(number, ...

    Oracle 10g sql 学习笔记

    Oracle 10g SQL 学习笔记涵盖了Oracle数据库的基础知识,包括版本信息、数据库系统特点、关系型数据库结构、SQL语言、操作环境以及常见的数据库操作。以下是对这些知识点的详细说明: 1. **Oracle 9i基础知识**: ...

    ORACLE第四章单行函数ppt课件.ppt

    Oracle 单行函数详解 本章要点包括字符函数、数字函数、日期函数、转换函数和通用函数等单行函数。 字符函数 字符函数用于处理字符串,包括大小写处理函数和字符处理函数。大小写处理函数可以将字符串转换为大写...

    Oracle Sql基础 Oracle Sql基础 Oracle Sql基础

    - 本章主要介绍Oracle SQL中的单行函数,包括字符函数、数字函数、日期函数等,并学习如何使用这些函数来处理数据。 **3.2 SQL函数介绍** - SQL函数是指那些能够接收一个或多个输入参数,并返回一个结果的内置函数...

Global site tag (gtag.js) - Google Analytics