`

oracle函数(二)——数据类型转换函数、综合数据类型函数

阅读更多

一、数据类型转换函数          (说明本文中用到的数据是oracle自带的scott用户下的表)

数据类型转换函数分为:数据类型的隐式转换 和 数据类型的显示转换

 

1.数据类型的隐式转换

字符串可以转化为数字和日期,数字要合法,日期要格式匹配。

 

select ename,empno from emp where empno = '7900';

 

 数字和日期在赋值的时候可以转换为字符串,但在表达式的时候不可以转换。

 

select ename,empno from emp where ename = '123';
select ename,empno from emp where ename = 123;    //错误 

 

 

2.数据类型的显示转换

to_char:转化为字符串

 

select ename,hiredate, to_char(hiredate,'yyyy/mm/dd') from emp;
//日期转化为字符串,得说明字符串的格式。
select ename,to_char(hiredate,'fmyyyy/mm/dd') from emp;
//fm是清除前置的零和空格
select to_char(hiredate,'fmyyyy"年"mm"月"') from emp;
//格式内加入字符串需要用双引

 

select ename,to_char(sal,'9999.000') salary from emp;
select ename,to_char(sal,'l99,999.000') salary from emp;
select ename,to_char(sal,'$99,999.000') salary from emp;
select ename,to_char(sal,'9g999d99')salary from emp;

 9代表有多少宽度,如果不足会显示成#######,0代表强制显示0,但不会改变结果,g是千分符,d是小数点,l 指代¥

 

十进制转化为十六进制:在数据库中16进制的表达式按照字符串来描述的,所以在转换时需要用to_char函数

 

select to_char(11,'xxxx') from dual;

 //其中xxx的位数要足够,不然不会正确显示,需要多写,足够多就ok.

 

 

to_number:转化为数字

十六进制的数转换为十进制的数要用to_number函数

 

select to_number('a','xx') from dual;

 

 

to_date:转化为日期

 

select to_date('1992-10-20','yy/mm/dd hh24:mi:ss') from dual;
select to_date('19921021','yy/mm/dd') from dual;
select to_date( 'January 15, 1989, 11:00 A.M.', 'Month dd, YYYY, HH:MI A.M.','NLS_DATE_LANGUAGE = American') from dual;

 //yy是两位来表示年,世纪永远和说话者的当前世纪相同

 

 

二、综合数据类型函数

 

1.操作数据位null的函数

 

nvl(expr1,expr2):如果expr1为空,就返回expr1,如果expr2为空返回expr2,两个表达式的数据类型一定要相同

 

select ename,comm,nvl(comm,-1) from emp;

 

 

nvl2(expr1,expr2,expr3):如果expr为非空,就返回expr2,如果expr1为空返回expr3

 

select ename,comm,nvl2(comm,comm,-1) from emp;

 

 

nullif(expr1,expr2):如果expr1和expr2相同就返回空,否则返回expr1

 

select ename,nullif(ename,'KING') from emp;

 

 

coalesce(expr1,expr2,...,exprm):返回括号内第一个非空的值

 

select ename,coalesce(comm,sal,100)"奖金" from emp;

 

 

2.分支函数

 

case语句

 

select ename,job,sal, case job when 'CLERK' then 1.10*sal when 'SALESMAN' then 1.15*sal else sal end "revise_salary" from emp;
//case...end 查询的是一列数据,end后面是给该列起的别名

decode:和case语句一样都是分支语句,但decode函数是oracle自己定义的,其它数据库可能不支持

 

语法: decode(col | expression, search1,result1[,search2,result2,...,][,default])

 

 

select ename, job, sal, decode( job, 'CLERK',1.10*sal,'SALESMAN','1.15*sal',sal)  "revised_salary" from emp;

译: 判别job,不同工作的人赋予不同的工资,除了clerk,salesman以外,其它的人工资不变,将函数的值起一个别名 revised_salary

 

巧用decode函数,改变排版方式

 

select sum(decode(to_char(hiredate,'yyyy'),'1980',1,0)) "1980",
sum(decode(to_char(hiredate,'yyyy'),'1981',1,0)) "1981",
sum(decode(to_char(hiredate,'yyyy'),'1982',1,0)) "1982",
count(ename)"总人数" from emp;

 说明:不管case语句还是decode函数,它们都是单行函数,每一行都有一个返回值,从oracle角度来讲,decode更好,因为各个版本的数据库都支持,横向来说,case语句更好,因为它是国际,不同数据库间都认可。

 

 

3.分组统计函数

 

avg(平均), sum(求和),max(最大),min(最小),count(计数)

 

select avg(sal),sum(sal),max(sal),min(sal) from emp;

 

 

select count(*), count(comm) from emp;

 输出: 14   4

 

所有组函数,除了count(*)以外,都忽略null值,count是计数,查看有多少行,count(列) 是查看该列有多少非空的

 

select avg(comm),avg(nvl(comm,0)) from emp;

 输出: 550   157.142857

 

avg求得是非空值的平均

 

select count(distinct deptno) from emp;

计算有多少不同的部门数 

 

 

分享到:
评论

相关推荐

    oracle 类型转换函数

    在Oracle数据库中,类型转换函数是处理数据时不可或缺的一部分,它们能够帮助我们高效地操作不同数据类型之间的转换,确保数据的准确性和完整性。本文将详细解释Oracle中的常见类型转换函数,包括数学函数、字符串...

    oracle函数大全(CHM格式).rar

    例如,有些函数可能不适用于特定的数据类型,或者在某些特定的SQL语句中使用时有特殊的注意事项。CHM文件通常会提供这些关键细节,帮助开发者避免常见错误,提高代码的效率和正确性。 通过深入研究这个"Oracle函数...

    oracle 函数大全 参考函数 手册 速查 chm格式

    4. 转换函数:如TO_CHAR(字符串转换为日期或数字)、TO_DATE(日期转换为字符串)等,实现不同数据类型间的转换。 5. 条件函数:如IFNULL(如果为空则替换)、NVL(空值替换)、DECODE(根据条件返回值)等,处理...

    hive和oracle函数对照表.xlsx

    包含hive和oracle的常用函数对比关系表,可以用于查询hive函数转换成oracle函数,或者oracle函数转换hive函数之间的相互转换。

    oracle(数据类型函数).

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

    oracle函数大全 oracle函数大全

    Oracle数据库系统提供了丰富的内置函数,这些函数用于处理各种数据类型,包括字符串、数值以及日期等。以下是关于Oracle函数的一些详细说明: 1. ASCII函数:ASCII函数返回与输入字符相对应的ASCII码,即十进制数字...

    oracle新手入门指导之四——ORACLE数据类型 .txt

    ### Oracle新手入门指导之四——ORACLE数据类型 在Oracle数据库中,数据类型的选择对于确保数据的正确存储、处理效率以及资源的有效利用至关重要。本文将详细介绍Oracle中的各种数据类型及其特性,帮助初学者更好地...

    Oracle数据库空间数据类型和空间函数扩展实现.pdf

    Oracle数据库空间数据类型和空间函数扩展实现 Oracle数据库是当前最流行的关系型数据库管理系统之一,对于空间数据的存储和查询提供了良好的支持。为了满足空间数据处理的需求,Oracle数据库扩展了空间数据类型和...

    ORACLE函数介绍 全系列中文

    oracle函数介绍 1 著名函数之单值函数 pdf oracle函数介绍 2 非著名函数之单值函数 pdf oracle函数介绍 3 著名函数之聚合函数 pdf oracle函数介绍 4 非著名函数之聚合函数 pdf oracle函数介绍 5 分析函数简述 ...

    oracle函数大全分析函数,聚合函数,转换函数,日期型函数,字符型函数,数值型函数,其他函数.docx

    Oracle 数据库中各种函数的总结和分类,包括分析函数、聚合函数、转换函数、日期型函数、字符型函数、数值型函数和其他函数等,每种函数都有其特点和应用场景,可以根据实际情况选择合适的函数来对数据进行处理和...

    oracle分析函数

    ·2Oracle分析函数二——函数用法 ·3Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT ·4Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST… ·5Oracle分析函数五——统计分析函数 ·6Oracle分析函数六——数据...

    oracle函数分类.rar

    **转换函数**包括`TO_NUMBER`、`TO_CHAR`和`TO_DATE`,它们允许我们根据需要在不同数据类型之间进行转换。例如,`TO_NUMBER`将字符串转换为数字,`TO_DATE`将字符串转换为日期格式,而`TO_CHAR`则将日期或数字转换为...

    Oracle函数返回表

    Oracle自定义函数返回一张表。主要用于生成一张等时间间隔的表数据。

    oracle常用函数和类型

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的数据类型和函数来支持复杂的数据操作和处理。在Oracle中,数据类型是定义变量、列或者常量的格式,而函数则是执行特定任务的预定义过程。 首先,让...

    oracle数据类型及函数

    Oracle 数据库是一个强大的关系型数据库管理系统,其丰富的数据类型和函数是进行数据存储和处理的基础。在Oracle中,数据类型用于定义字段可以存储的数据种类,而函数则帮助我们对数据进行各种操作。以下是对这些...

    Oracle函数.chm

    Oracle函数.chm

    oracle 函数大全oracle 函数大全

    Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,它包含了大量的内置函数,这些函数极大地增强了SQL查询的能力,提高了数据处理的效率。本篇文章将详细介绍Oracle数据库中的一些关键函数,并提供实际应用...

    oracle函数大全

    3. 数据类型转换、异常处理等附加PL/SQL数据类型和结构 在使用这些函数时,了解它们的参数以及返回值是非常重要的。在实际编程中,我们需要注意区分Oracle函数的大小写敏感性,因为在PL/SQL中函数是不区分大小写的...

    Oracle函数大全-详细介绍.rar

    "oracle函数介绍(6) 著名函数之分析函数.doc","oracle函数介绍(7) 非著名函数之分析函数.doc"以及"oracle分析函数.doc"深入介绍了这些高级函数,帮助理解如何利用它们进行复杂的数据分析。 最后,"oracle函数介绍...

Global site tag (gtag.js) - Google Analytics