`
Phile.net
  • 浏览: 26956 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

oracle 通用函数及相关测试

阅读更多

---------------------------------------------通用函数
--1,nvl()函数 将null置0
select nvl(comm,0) from emp;
--2,nullif() 如果表达式exp1与exp2的值相等则返回null否则返回exp1的值
select ename,nullif(sal,comm) from emp;
--3,nvl2()
select empno,ename,sal,comm,nvl2(comm,comm+sal,sal) total from emp;
--4,coalesce() 一次考察各参数表达式,遇到非null值即停止并返回该值
select empno,ename,sal,comm,coalesce(sal+comm,sal,0) 总收入 from emp;
--5,case表达式
select empno,ename,sal,
case deptno
     when 10 then '财务部'
     when 20 then '研发部'
     when 30 then '销售部'
    else '未知部门'
    end 部门
   from emp;

--6,decode()函数 和case表达式相似,decode()函数也用于实现多路分支结构
select empno,ename,sal,
decode(deptno,10,'财务部',20,'研发部',30,'销售部','未知部门')
部门
from emp;
--7,找出每个月倒数第3天雇的员工
select * from emp where last_day(hiredate)-2 = hiredate
--8,找出25年前雇的员工
select * from emp where hiredate<add_months(sysdate,-25*12)
--9,所有员工名字加上Dear,并且名字的首字母大写
select 'Dear'||initcap(ename) from emp;
--10,找出姓名为5个字母的员工
select * from emp where length(ename)=5;
--11,找出姓名中不带R这个字母的员工
select * from emp where ename not like '%R%';
--12,显示所有员工姓名的第一个字母
select substr(ename,0,1) from emp;
--13,显示所有员工,按名字的降序排列,若相同则按工资的升序排列
select *
  from emp
 order by ename desc,
          case
            when exists (select ename from emp) then
             sal
          end;
         
select * from emp order by ename,sal;
--14,假设一个月是30天,找出所有员工的日薪,不计小数
select ename 姓名,round((sal+nvl(comm,0))/30,0) 日薪 from emp;
--15,找出2月份受雇的员工
select * from emp where to_char(emp.hiredate,'yyyyMMdd') like '____02%';
--16,列出员工加入公司的天数(四舍五入)
select ename 姓名,round(months_between(sysdate,emp.hiredate)*30,0) 加入公司的天数 from emp;
--17,分别用case和decode函数列出员工所在部门,deptno=10显示'部门10'
select ename 姓名,
case deptno
     when 10 then '部门10'                                        
     when 20 then '部门20'
     when 30 then '部门30'
  else '未知部门'
  end 部门
from emp;

select ename 姓名,
decode(deptno,10,'部门10',20,'部门20',30,'部门30','未知') 部门
from emp;

分享到:
评论
1 楼 言日星极 2012-08-19  
引用

16,列出员工加入公司的天数(四舍五入)
select ename 姓名,round(months_between(sysdate,emp.hiredate)*30,0) 加入公司的天数 from emp;


这个是错误的吧?每个月都30天?直接拿当前日期减去受雇日期不就好了嘛~
SELECT ROUND(SYSDATE - emp.hiredate) days FROM emp;

相关推荐

    ORACLE面试测试题目

    根据提供的信息,我们可以总结出以下详细的Oracle知识点: ### 1....以上是对给定Oracle面试测试题目的详细解答。这些知识点涵盖了Oracle数据库的基础操作、高级功能以及常见面试问题的解决方案。

    Oracle数据库SQL及常用函数命令简介

    ### Oracle数据库SQL及常用函数命令简介 #### 一、基本概念 1. **域(Domain)**:在数据库中,域是指一组具有相同数据类型的值的集合。例如,整数集合、字符串集合或是全体学生的集合等。每个域代表了一种特定的...

    oracle实验题目

    根据提供的信息,我们可以推断出这是一份与Oracle数据库相关的实验题目列表。由于部分内容看起来像是乱码或非标准字符,我们将基于标题、描述以及部分可识别的信息来构建相关的Oracle数据库知识点。 ### Oracle实验...

    DBD-Oracle-1.75_2.tar.gz

    DBD-Oracle-1.75_2.tar.gz是一个针对Perl编程语言的模块,主要用于连接和操作Oracle数据库。...通过理解DBI和DBD的概念,以及如何安装和使用DBD-Oracle,开发者可以更高效地处理与Oracle数据库相关的任务。

    oracle数据库优化PPT

    定位是通过测试和监控找出性能瓶颈,解决问题则需要根据通用的优化技术,如增加索引、正确使用函数、优化SQL语句等。例如,使用索引可以显著提高查询速度,尤其是在处理大量数据时。但是,滥用函数,尤其是将函数...

    DB2与ORACLE常用语句对照

    - 插入数据:`INSERT INTO`语句在Oracle和DB2中都是通用的。 - 更新数据:`UPDATE`语句在两个系统中基本一致,但Oracle允许在单个`UPDATE`语句中更新多个表,DB2通常限制为单表更新。 - 删除数据:`DELETE FROM`...

    Oracle ODBC驱动64X

    ODBC是一种标准的应用程序编程接口(API),它提供了在不同的数据库系统之间进行数据交换的通用方法,使得开发者无需了解底层数据库的特定细节就能实现数据的存取。 Oracle的ODBC驱动器包括了必要的组件,如OCI...

    plsql 连接oracle数据库工具

    本文将深入探讨如何使用PL/SQL连接Oracle数据库以及相关的工具。 Oracle数据库是全球广泛使用的大型关系型数据库管理系统,它支持各种类型的数据操作和复杂业务逻辑。在开发和管理Oracle数据库时,PL/SQL作为其内建...

    oracle 11g所有jar

    这些JAR文件在Oracle 11g中扮演着不可或缺的角色,因为它们提供了对Java存储过程、触发器、函数和包的支持。 1. **Java在Oracle 11g中的应用** - Java在Oracle数据库中的使用使得开发者可以利用Java的灵活性和强大...

    Oracle_Database_11g完全参考手册.part3/3

    附录部分内容丰富、便予参照,包括Oracle命令、关键字、功能以及函数等。 目录 第1部分 关键的数据库概念 第1章 OracleDatabase11g体系结构 1.1 数据库和实例 1.2 数据库技术 1.2.1 存储数据 1.2.2 数据保护 1.2.3...

    Oracle_Database_11g完全参考手册.part2/3

    附录部分内容丰富、便予参照,包括Oracle命令、关键字、功能以及函数等。 目录 第1部分 关键的数据库概念 第1章 OracleDatabase11g体系结构 1.1 数据库和实例 1.2 数据库技术 1.2.1 存储数据 1.2.2 数据保护 1.2.3...

    cmpp测试工具 cmpp测试工具 cmpp测试工具

    6. util.dll和UmsUtil.dll:可能包含一些通用的辅助工具函数,如字符串处理、网络操作等。 7. CmppTest.exe:主程序,即CMPP测试工具的执行文件。 通过这些组件,开发者可以使用CMPP测试工具进行系统集成测试、性能...

    sqlserver與oracle互連的幾種方式

    在Oracle中,异构连接服务通过HS(Heterogeneous Services)代理程序和HS相关的配置文件(如init.ora, tnsnames.ora, listener.ora等)来实现。 - 具体步骤可能包括: - 配置Oracle的tnsnames.ora文件以定义远程...

    CSDN Oracle 版精华帖荟萃

    8. 行转列通用过程:在数据仓库和报表生成中常常需要进行行转列的操作,Oracle中的PL/SQL可以编写通用过程来实现这一需求。 9. dblink同步远程带blob字段的表:dblink是Oracle提供的一种数据库链接技术,用于实现...

    oracle pl/sql最佳实践

    使用包(PACKAGE)进行组织,可以将相关的函数和过程封装在一起,减少命名冲突。 2. **异常处理**:利用`BEGIN...EXCEPTION`块捕获并处理运行时错误,确保程序的健壮性。合理定义自定义异常,避免使用通用异常,以...

    oracle+MFC

    在实际项目中,"oracle+test"可能是测试用例或示例代码,用于展示如何在MFC中与Oracle数据库进行交互。开发者可以参照这些例子来学习和理解如何在自己的应用中整合这两者。 总的来说,Oracle与MFC的结合为开发高效...

    Oracle PLSQL编程最佳实践中文版

    - 通过测试函数调用次数来评估性能影响。 - **避免循环中的静态表达式**: - 将不会改变的表达式移出循环,减少不必要的计算。 - **合理使用COUNT**: - 只在真正需要统计行数时使用COUNT。 - **数值计算**: - ...

    CSDN+Oracle版精华帖荟萃

    CSDN+Oracle版精华帖荟萃涉及了多个与Oracle数据库相关的知识点,涵盖了从基础问题到高级实践的各个方面。下面,我将根据给出的链接内容和描述,详细说明这些知识点。 1. 大数据量的数据库设计问题:在设计处理大量...

    oracle SQL 对比.doc

    - 更加通用的接口,允许应用程序连接到多种数据库系统,简化了多数据库环境下的应用开发。 #### 四、迁移策略 - **工具选择**: - 使用Oracle到SQL Server的迁移工具可以自动化部分转换过程。 - **数据迁移**: -...

    SQL Server Migration Assistant 2005 for Oracle V4.0迁移工具

    2. **对象转换**:SSMA能够自动将Oracle的数据类型、存储过程、函数、触发器等转换为SQL Server的等价对象。它还支持自定义转换规则,以满足特定需求。 3. **数据迁移**:在完成对象转换后,SSMA可以将Oracle数据库...

Global site tag (gtag.js) - Google Analytics