nvl2函数_024-Oracle排序、单行函数

1. 使用ORDER BY排序

(1) ORDER BY 子句的作用和语法是什么?

用于对结果集进行排序处理;ORDER BY 子句在 SELECT 语句的最后,ORDER BY 后侧指定需要排序列。

(2) 如何指定升序排序?

ASC: 升序排序,默认。

(3) 如何指定降序排序?

DESC: 降序排序。

(4) 升序的规则是什么?

对于数字值,小的值在前面显示—例如,1–999。

对于日期,早的日期在前面显示—例如,01-1-92 在 01-1-95 前面 。

对于字符值,依字母顺序显示—例如,A 第一,Z 最后。

对于空值,升序排序时显示在最后,降序排序时显示在最前面。

(5)SELECT 语句的执行顺序如下:

FROM 子句

WHERE 子句

SELECT 子句

ORDER BY 子句

2. 函数介绍

(1) 什么是函数?

是数据库产品中提供的能够处理查询结果的方法。

(2) 函数有哪些类型?

单行函数、多行函数

(3) 单行函数的特点是?

这些函数仅对单个行进行运算,并且每行返回一个结果。

(4) 多行函数的特点是什么?

这些函数能够操纵成组的行,每个行组给出一个结果,这些函也被称为组函数。

(5)函数语法

function_name(arg1,arg2,.....)

function_name:是函数的名字。

arg1, arg2:是由函数使用的任意参数。参数可以是一个列名、用户提供的常数、变量值、

或者一个表达式。

3. 单行函数介绍

(1) 单行函数有什么特性?

① 作用于每一个返回行,每行返回一个结果。

②可能需要一个或多个参数。

③可以修改结果集的数据类型。

④可以嵌套。

⑤可能返回一个与参数不同类型的数据值。

⑥能够用在 SELECT、WHERE 和 ORDER BY 子句中。

(2) Oracle中的单行函数分为几大类?每一类的作用是什么?

①字符函数:接受字符输入,可以返回字符或者数字值。

②数字函数:接受数字输入,返回数字值。

③日期函数:对 DATE 数据类型的值进行运算 (除了 MONTHS_BETWEEN 函数返回一个数字,所有日期函数都返回一个 DATE 数据类型的值。

④转换函数:从一个数据类型到另一个数据类型转换一个值。

⑤通用函数:

NVL、NVL2 、NULLIF 、COALSECE、CASE、DECODE

4. 大小写处理函数

LOWER:转换大小写混合的字符串为小写字符串。

UPPER:转换大小写混合的字符串为大写字符串。

INITCAP:将每个单词的首字母转换为大写,其他字母为小写。

大小写处理函数需要一个参数,参数类型为字符串类型,返回一个字符串。

5. 字符处理函数

(1) Oracle中的DUAL表时什么表?作用是什么?

dual 表:dual 是一张只有一个字段,一行记录的表。dual 表也称之为'伪表',因为他不

存储主题数据。

作用:如果我们不需要从具体的表来取得表中数据,而是单纯地为了得到一些我们

想得到的信息,并要通过 select 完成时,就要借助 dual 表来满足结构化查询语言的格式。

(2) Oracle中能够处理字符的函数及作用有哪些?

①CONCAT(arg1,arg2):连接值在一起 (CONCAT 函数有两个输入参数)

arg1:字符串类型。字符拼接的值。

arg2:字符串类型。字符拼接的值。

②SUBSTR(arg1,arg2,arg3):截取子串。

arg1:字符串类型。原字符串。

arg2:整数类型。开始位置(开始位置可以是一个负数,-1 表示原串的最后一位,-2 则

表示倒是第二位以此类推)。

arg3:整数类型。截取个数。

③SUBSTR(arg1,arg2):截取子串。

arg1:字符串类型。原字符串。

arg2 开始位置(开始位置可以是一个负数,-1 表示原串的最后一位,-2 则表示倒是第二位以此类推)截取到末尾。

④LENGTH(arg1):以数字值显示一个字符串的长度。

arg1:字符串类型。计算长度的字符串。

⑤INSTR(arg1,arg2):找到一个给定字符的数字位置。

arg1:字符串类型。原字符串。

arg2:字符串类型。查找内容。

⑥INSTR(arg1,arg2,arg3,arg4):指定查找位置以及出现的次数。

arg1:字符串类型。原字符串。

arg2:字符串类型。查找内容。

arg3:整数类型。开始位置。

arg4:整数类型。第几次出现。

⑦LPAD(arg1,arg2,arg3):用给定的字符左填充字符串到给定的长度。

arg1:字符串类型。原字符串。

arg2:整数类型。总长度。

arg3:字符串类型。填充的子字符串。

⑧RPAD(arg1,arg2,arg3):用给定的字符右填充字符串到给定的长度。

arg1:字符串类型。原字符串。

arg2:整数类型。总长度。

arg3:字符串类型。填充的子字符串。

⑨TRIM(arg1, from arg2):从一个字符串中去除头(leading)或尾(trailing)或头尾两侧(both)的字符 (默认为头尾两侧) 如果 arg1 或 arg2 是一个文字字符,必须放在单引号中。

arg1 需要去掉的字符,FROM 为关键字,arg2需要操作的字符串。

⑩REPLACE(arg1,arg2,arg3):REPLACE 函数是用另外一个值来替代串中的某个值。

arg1:字符串类型。原字符串。

arg2:字符串类型。需要替换的子串。

arg3:字符串类型。替换的内容

6. 数字函数

(1) Oracle中能够处理数字的函数及作用有哪些?

①ROUND(arg1,arg2):四舍五入指定小数的值。

arg1:数字类型。原数字。

arg2:整数类型。小数点保留的位数,负数则表示指定整数的位置,整数表示保留的小数位数。

②ROUND(arg1):四舍五入保留整数。

arg1:数字类型。原数字。

arg2:整数类型。小数点保留的位数。

③TRUNC(arg1,arg2):截断指定小数的值,不做四舍五入处理。

arg1:数字类型。原数字。

arg2:整数类型。小数点保留的位数,负数则表示指定整数的位置,整数表示保留的小数位数。

④TRUNC(arg1):四舍五入保留整数。

arg1:数字类型。原数字。

arg2:整数类型。小数点保留的位数。

⑤MOD(arg1,arg2):取余。

arg1:数字类型。被除数。

arg2:数字类型。除数。

7. 日期的使用

(1) 在Oracle中如何获取系统当前时间?

SYSDATE 是一个日期函数,它返回当前数据库服务器的日期和时间。

(2) 在Oracle中做日期计算有哪些特点?

Date+number=日期,加一个天数到一个日期上。

Date-number=日期,从一个日期减一个天数。

Date-date=天数,两个天数之差。

Date+number/24=日期,加一个小时数(number)到一个日期上。

8. 日期函数

(1) 在Oracle中能够处理日期的函数有哪些?

①MONTHS_BETWEEN(date1,date2):计算 date1 和 date2 之间的月数。其结果可以是正的也可以是负的。如果 date1 大于 date2,结果是正的。反之,结果是负的。

date1:日期类型。date2:日期类型。

②ADD_MONTHS(date, n):添加 n 个日历月到 date。n 的值必须是整数,但可以是负的。date:日期类型。n:整数

③NEXT_DAY(date, ‘char’):计算在 date 之后的下一个周(‘char’)的指定天的日期。char 值可能是一个表示一天的数或者是一个字符串。如果使用数字表示星期,1 是从星期日开始。数字范围为:1-7。或者用‘星期··’date:日期类型。char:数字或字符串。

④LAST_DAY(date):计算包含 date 的月的最后一天的日期。

date:日期类型。

⑤ROUND(date,‘fmt’):返回用格式化模式 fmt 四舍五入到指定单位的 date ,如果格式模式 fmt 被忽略,date 被四舍五入到最近的天。

date:日期类型。fmt:字符串类型(yy、mm、dd)。

⑥TRUNC(date, ‘fmt’):返回用格式化模式 fmt 截断到指定单位的带天的。如果格式模式

fmt 被忽略,date 被截断到最近的天。

date:日期类型。fmt:字符串类型。

9. 隐式数据类型转换

(1) 在Oracle中什么是隐式数据类型转换?

隐式转换:当源数据的类型和目标数据的类型不同的时候,如果没有转换函数,就会发生隐式转换,也称自动转换。

(2) 哪些数据类型支持隐式类型转换?

直接赋值转换:

9348a54e2ef710fc4e8a0c188318dab1.png

表达式赋值转换:

c34a132a5765f61a52861c4fe9abcaeb.png

(3) 隐式数据类型转换有哪些问题?

①性能影响:隐式转换的最大问题就是转换时会导致索引的无效,进而可能导致全表扫描。当表的数据量很大的时候,产生会很大的性能问题。比如说,VARCHAR2 和 NVARCHAR2 隐式数据类型转换导致的性能问题。

②不便于阅读:由于隐式转换使得数据库编程人员和 DBA 难以了解到究竟发生了怎样的类型转换,而且如果代码很多很长的话要查出错误就需要费很大的劲。

(4) 什么是显示数据类型转换?

通过数据库中的转换函数完成数据类型的转换。

10. 日期到字符的转换

(1) Oracle中提供了哪些转换函数?

TO_CHAR(arg1,’fmt’):将一个日期或者数字转换为字符类型。带格式化样式 fmt。

arg1:数字或者日期类型。需要转换的数据。fmt:转换格式。

TO_NUMBER()将字符转换成数字。

TO_DATE()将字符转换成日期。

(2) 在Oracle中将日期转换成字符使用什么函数完成?

TO_CHAR(arg1,’fmt’):将一个日期或者数字转换为字符类型。带格式化样式 fmt。

arg1:数字或者日期类型。需要转换的数据。fmt:转换格式。

(3) 日期格式的模板元素有哪些?

bc1a2c369fe08ecea142fdb16e005d26.png

e9da93c759f8ecba102768a8d84d0f4c.png

(4) 时间格式模板元素

85b4518630dce56541b5a2fceaadf8ed.png

11. 数字到字符的转换

(1) 在Oracle中讲数字转换为字符的函数是什么?

TO_CHAR(arg1,’fmt’):将一个日期或者数字转换为字符类型。带格式化样式 fmt。arg1:数字或者日期类型。需要转换的数据。fmt:转换格式。

(2) 数字格式模板有哪些?

905ccd602756bbfc241e6262c4f68980.png

12. 字符到数字的转换

(1) 在Oracle中将字符转换为数字的函数是什么?

TO_NUMBER(‘arg1’,fmt’):将字符串转换为数值型的格式。带格式化样式 fmt。

arg1:字符串类型。需要转换的数据。

fmt:转换格式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值