`

oracle基础知识2_单行函数

    博客分类:
  • DB
 
阅读更多

 

dual 是一个 用来测试函数和表达式的伪表

 

 

内容分为 单行  多行 函数两块:

 


 

 

字符函数:

 

1 大小写函数

 

select lower('Hello world') as 转小写, upper('Hello World') as 转大写,initcap('zm') as 首字母大写  from dual;

转小写 转大写 首字
hello world HELLO WORLD Zm

 

2 截取函数

--substr(a,b) 从a中,第b位开始取,取右边所有的字符

select substr('hello world',3) from dual;

 

--substr(a,b,c) 从a中,第b位开始取,取c位

select substr('hello world',3,4) from dual;

 

3 字符/字节长度

--length 字符数  lengthb 字节数

select length('中国')  字符数,lengthb('中国')  字节数 from dual;

字符数 字节数
2 4
 

4 instr 查询子串位置

instr(a,b) 从a中查找b,找到返回下标(从1开始计数),否则返回0

select instr('hello world','ll') from dual;

LOCATION
3

 

5 左/右填充  lpad(src,10填满后长度,str用这个字符来填充)

select lpad('abcd',10,'*') 左,rpad('abcd',10,'*') 右 from dual;

左 右
******abcd abcd******

 

6 trim(不仅仅是去掉空格)

select trim('H' from  'Hello WorldH') as trim from dual;

 

TRIM
ello World


 7 替换函数 replace

select replace('hello world','l','*') as replaceres from dual;

REPLACERES
he**o wor*d

 

 

 

数字函数:

 

1 四舍五入 ROUND(srcNum, 保留小数位数) 

select ROUND(45.926, 2) 一,ROUND(45.926, 1) 二,ROUND(45.926, 0) 三,ROUND(45.926, -1) 四, ROUND(45.926, -2) 五   from dual;

 

一 二 三 四 五
45.93 45.9 46 50 0
 

2 截断函数 TRUNC (仅仅是截断,不会四舍五入)

 select TRUNC(45.926, 2) 一,TRUNC(45.926, 1) 二,TRUNC(45.926, 0) 三,
        TRUNC(45.926, -1) 四, TRUNC(45.926, -2) 五   from dual

 

一 二 三 四 五
45.92 45.9 45 40

 

 

日期函数:

 

oracle只有  date, datestamp 两种类型, mysql有三种,date,datatime, datestamp;

 

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as time from dual;

TIME
2014-06-04 13:53:15

select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss:ff') as time from dual;

TIME
2014-06-04 13:50:56:045000

 

 日期格式的元素:

格式 举例
YYYY 2010
YEAR 年的英文名称  twenty ten
MM 两位数字 不足补0   06
MONTH 4月
DY 星期一
DAY 星期一
DD 一个月的第几天 02

 

 

转换函数:

 

数据类型转换分为两种: 显示 和  隐式

 

oracle自动隐式转换如下:

 

源数据类型 目标数据类型
varchar2/char number
varchar2/char date
number varchar2
date varchar2

 

eg: select * from emp where hiredate = '17-11月-81';  这就是典型将符合oracle日期格式的字符串隐式转换成日期后在查询的例子。

 

显示函数:

 

1 to_char

to_char函数常用到的格式:

9 数字
0
$ 美元
L 本地货币符号
. 小数点
, 千位符

 

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss"今天是" day') as today from dual;

 

TODAY
2014-06-04 14:51:25今天是 星期三

 

利用 to_char函数,将工资显示的转化成我们想看到的格式:

select to_char(sal,'L9,999.99') as sal from emp;

SAL
¥6,000.00
¥800.00
¥1,600.00
¥1,250.00
¥2,975.00
¥1,250.00
¥2,850.00

 

 

 

通用函数:

 

nvl2(a,b,c) 当a=null时,返回c,否则返回b

select sal*12+nvl2(comm,comm,0) from emp;

 

年薪
72000
9600
19500
15500
35700
16400
34200

 

 

条件表达式:

 

 1 case:

select ename,job,sal as 原始薪 ,
    case job when 'PRESIDENT'  then sal + 1000
             when 'MANAGER' then sal+800
             else sal + 300
    end as 长后薪

from emp;

 

ENAME JOB 原始薪 长后薪
Tom_ABCD   6000 6300
SMITH CLERK 800 1100
ALLEN SALESMAN 1600 1900
WARD SALESMAN 1250 1550

 

 2 decode

 

decode (col|expression,  search1, result1[, search2, result2,...,]

                                                      [,default])

看col|expression的数值,如果是search1,则执行 result1,如果是search2,则执行 result2... 如果都不说,则执行default

 

select ename,job,sal 涨前薪水,
          decode(job,'PRESIDENT',sal+1000,
                      'MANAGER',sal+800,
                                sal+400) 涨后薪水
    from emp;

 

ENAME JOB 涨前薪æ 涨后薪æ
Tom_ABCD   6000 6400
SMITH CLERK 800 1200
ALLEN SALESMAN 1600 2000
WARD SALESMAN 1250 1650

 

 

 案例: 统计 1980,1981,1982,1987年入职的员工:

 

 select count(*) Total,
           sum(decode(to_char(hiredate,'RR'),'80',1,0)) "1980",
           sum(decode(to_char(hiredate,'RR'),'81',1,0)) "1981",
           sum(decode(to_char(hiredate,'RR'),'82',1,0)) "1982",
           sum(decode(to_char(hiredate,'RR'),'87',1,0)) "1987"
    from emp;

 

TOTAL 1980 1981 1982 1987
15 1 10 1 2

 

 

 

  • 大小: 15.7 KB
分享到:
评论

相关推荐

    MLDN魔乐科技JAVA培训_Oracle课堂6_排序、单行函数

    在本课程"MLDN魔乐科技JAVA培训_Oracle课堂6_排序、单行函数"中,我们将深入探讨Java编程与Oracle数据库中与排序和单行函数相关的知识点。这两个主题对于任何数据库开发者或Java应用程序员来说都是至关重要的,因为...

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

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

    ORACLE中的经典SQL及函数

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

    oracle基础必学知识

    Oracle是世界上最广泛使用的数据库管理系统之一,对于任何想要深入IT领域的人来说,掌握Oracle基础知识至关重要。以下是一些关于Oracle必学知识的详细阐述: 1. **Oracle简介及安装**:Oracle数据库系统是一个关系...

    Oracle基础

    Oracle基础知识是一门数据库管理系统的基础课程,本课程涵盖了Oracle数据库的基本概念、结构化查询语言(SQL)基础知识、查询语句的编写、数据限制和排序、单行函数等内容。 一、结构化查询语言(SQL)基础知识 ...

    Oracle 10g培训经典_中文版

    - Les03_单行函数.ppt介绍了如TO_CHAR、LOWER、UPPER等单行函数,用于数据转换和操作。 - Les04_多表查询.ppt则深入到更复杂的联接操作,如INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN。 3. **数据处理与分组*...

    Oracle_10g_plsql实战笔记.doc

    ### Oracle 10g PL/SQL 实战笔记关键知识点解析 #### 一、PL/SQL 概述 - **PL/SQL** (Procedural Language for SQL) 是 Oracle 数据库的一种扩展,它...这些基础知识对于从事 Oracle 数据库开发的人员来说至关重要。

    Oracle 8i PL_SQL高级程序设计(PDF)

    本教程《Oracle 8i PL/SQL高级程序设计》可能涵盖了以下几个核心知识点: 1. **基础语法**:PL/SQL的基础包括声明变量、常量、游标、表类型等。学习如何定义变量,以及如何在程序块(BEGIN...END)中使用它们。理解...

    oracle培训教程_2

    单行函数作用于一行数据,返回单个结果,而分组函数如COUNT、SUM、AVG等则对一组数据进行计算。分组函数通常与GROUP BY子句一起使用,以对数据进行聚合操作。 6. 数据操纵语言命令 DML(Data Manipulation Language...

    oracle基础知识PPT详解

    数据库的介绍、分类 重点:oracle的历史、版本、安装平台 ...单行函数 对三、四两节的巩固练习 高级查询 表的管理、约束及伪列的使用 表的集合操作 视图、序列、用户管理 介绍一下oracle的开发工具

    Oracle.SQL必备参考_oracle_

    2. **Oracle SQL扩展**:Oracle数据库支持标准SQL的同时,还引入了一些自己的扩展,如PL/SQL,这是一种过程化的编程语言,用于编写存储过程、函数和触发器。 3. **子查询**:Oracle SQL中的子查询允许在查询中嵌套...

    oracle_PLSQL_语法详细手册

    这份手册旨在帮助用户理解和掌握在Oracle环境中进行数据管理和编程的基础知识。 在SQL语法部分,手册涵盖了创建数据库对象的核心语句,如: 1. **CREATE TABLE** 语句:用于创建数据库中的表。你可以定义表的结构...

    Oracle2基础2.ppt

    Oracle提供了一系列单行函数,例如日期函数,如Add_months用于增加日期的月份,Last_day返回指定日期所在月份的最后一天,Months_between计算两个日期之间的月份数,而Round则可以对日期进行四舍五入到指定单位。...

    Oracle大学培训资料_PLSQL编程

    提供的压缩包文件可能包含了这些主题的详细教程或示例代码,如"PLSQL1.pdf"可能涵盖了基础概念和语法,"PLSQL2.pdf"可能深入到更高级的主题如游标和异常处理,而"PLSQL3.pdf"可能涉及性能优化和并发控制等内容。...

    Oracle 8i PL_SQL高级程序设计

    理解这些基础知识是编写有效PL/SQL程序的前提。 其次,PL/SQL中的子程序(包括函数和过程)是其核心特性之一。通过定义和调用子程序,开发者可以实现代码复用和模块化。书中会讲解如何创建、调用和参数传递,以及子...

    oracle基础资料

    针对初学者,了解Oracle的基础知识至关重要。以下将根据提供的压缩包文件名称,详细讲解Oracle的一些核心概念。 首先,我们从“第1章_Oracle数据库基础.pdf”开始。这一章节通常会介绍Oracle数据库的基本架构,包括...

    ORACLE 基础训练

    以上是Oracle基础训练的主要内容,通过深入学习和实践,你将能熟练掌握Oracle数据库的基础操作和高级特性。"Oracle基礎教程(一).ppt"至"Oracle基礎教程(三).ppt"中的材料将帮助你逐步掌握这些知识,为你的数据库管理...

Global site tag (gtag.js) - Google Analytics