Oracle解码函数使用

 2024-01-29 04:02:37  阅读 0

字符函数

功能

阐明

ASCII(X)

返回字符 X 的 ASCII 代码

(x,y)

拼接并连接字符串 x 和 y

INSTR(X,STR[,开始][,N)

要在 X 中查找 str,可以指定从 start 开始或从 n 开始。

(X)

返回 X 的长度

下(X)

将 X 转换为小写

上部(X)

将 X 转换为大写

LTRIM(X[,])

修剪 X 左侧的字符串。默认情况下会修剪空格。

RTRIM(X[,])

修剪 X 右侧的字符串。默认情况下会修剪空格。

修剪([来自]X)

修剪 X 两侧的字符串。默认情况下会修剪空格。

(X,旧,新)

在 X 中查找旧的并将其替换为新的

(X,开始[,])

返回字符串

上面每个函数的示例:

例子

结果示例

ASCII('a') FROM 双;

97

('你好','世界') FROM Dual;

INSTR('你好世界','或') FROM Dual;

('你好') FROM Dual;

LOWER('你好') FROM Dual;

你好

UPPER('你好') FROM Dual;

你好

LTRIM('=Hello=','=') FROM 双;

你好=

RTRIM('=Hello=','=') FROM 双;

=你好

TRIM('='FROM'=Hello=') FROM 双;

你好

('ABCDE','CD','AAA')FROM 对偶;

('ABCDE',2,3) FROM 对偶;

BCD

数值函数

数字函数接受数字参数,该参数可以来自表中的列,也可以是数字表达式。

功能

阐明

例子

ABS(X)

的绝对值

ABS(-3)=3

ACOS(X)

X 的反余弦

ACOS(1)=0

COS(X)

余弦

COS(1)=0.544

最高限额(X)

最小值大于或等于X

上限(5.4)=6

楼层(X)

定义函数的命令是什么_定义函数时使用的参数是_adams用户自定义函数

最大值小于或等于X

下限(5.8)=5

对数(X,Y)

X 是以 Y 为底的对数

对数(2,4)=2

MOD(X,Y)

X 除以 Y 的余数

模(8,3)=2

功率(X,Y)

X 的 Y 次方

幂(2,3)=8

圆(X[,Y])

X 在第 Y 个位置进行舍入

回合(3.456, 2)=3.46

平方根(X)

的平方根

平方根 (4)=2

TRUNC(X[,Y])

X 在位置 Y 处被截断

截断(3.456,2)=3.45

阐明:

ROUND(X[,Y]),四舍五入。

当使用默认y时,默认y=0; 例如:ROUND(3.56)=4。

y 是正整数,四舍五入到小数点后 y 位。 回合(5.654,2)=5.65。

y 是负整数,四舍五入为 |y| 小数点左边的位数。 回合(351.654,-2)=400。

TRUNC(x[,y]),直接截取,不进行舍入。

当使用默认y时,默认y=0; 例如:TRUNC (3.56)=3。

Y 是正整数,四舍五入到小数点后 y 位。 TRUNC(5.654,2)=5.65。

y 是负整数,四舍五入为 |y| 小数点左边的位数。 TRUNC(351.654,-2)=300。

日期函数

日期函数对日期进行操作。 常用的日期函数有:

(d,n),将指定的月数 n 与某个日期 d 相加,并返回计算出的新日期。

d 代表日期,n 代表要添加的月数。

示例: ,(,5) FROM 对偶;

(d),返回指定日期该月的最后一天。

示例: ,() FROM 对偶;

ROUND(d[,fmt]) 返回格式为 fmt 的舍入日期值,其中 d 是日期,fmt 是格式

模型。 默认 fmt 是 DDD,即一个月中的某一天。

Ø ① 如果fmt为“YEAR”,则四舍五入到某年的1月1日,即上半年四舍五入,下半年视为下一年。

Ø ② 如果fmt为“MONTH”,则四舍五入到某月的1号,即四舍五入上个月,下半月视为下个月。

Ø ③ 默认为“DDD”,即一个月中的某一天,最接近的一天,前半天被丢弃,后半天被视为第二天。

Ø ④ 如果fmt为“DAY”,则四舍五入到最近一周的星期日,即前半周四舍五入,后半周作为该周的星期日下周。

示例: ,ROUND(),ROUND(,'天'),

ROUND(,'月'),ROUND(,'年') FROM 双;

ROUND对应的函数是TRUNC(d[,fmt]),对日期进行操作。 TRUNC 和 ROUND 很相似,只不过日期不进行四舍五入,直接截取对应格式的第一天。

(fmt FROM d),提取日期的特定部分。

fmt 是:年、月、日、小时、、。 其中YEAR、MONTH、DAY可以匹配DATE类型或类型; 但 HOUR、 和 DAY 必须与类型匹配。

HOUR 匹配结果中未添加时区,因此在中国运行的结果会小 8 小时。

示例:“日期”,

(年份)“年份”,

(MONTH FROM )"月",

(DAY FROM )"日",

(HOUR FROM )"小时",

( 从 )””,

( 从 )””

从双;

转换函数

转换函数将值从一种数据类型转换为另一种数据类型。 常见的转换函数有:

(d|n[,fmt])

将日期和数字转换为指定格式的字符串。 fmt 是格式字符串

代码演示:处理日期

(,'YYYY"年"MM"月"DD"日"HH24:MI:SS')"日期"FROM Dual;

代码分析:

定义函数时使用的参数是_adams用户自定义函数_定义函数的命令是什么

在格式字符串中,使用双引号引用非格式字符

对于数字格式,格式字符为:

范围

例子

阐明

999

在指定位置显示数字

9.9

返回指定位置的小数点

99,99

返回指定位置的逗号

999 美元

返回数字开头的美元符号

电子电气设备

9.

科学计数法

L999

在数字前面加上当地货币符号

公关

999公关

如果数字为负数,则使用尖括号来表示。

代码演示:处理数字

(-.45,'L9.')“日期”FROM 双;

(X,[,fmt])

将字符串转换为fmt格式的日期类型

(X,[,fmt])

将字符串转换为 fmt 格式的数字

代码演示:函数

('-$12,345.67','$99,999.99')"num" FROM Dual;

其他单行函数

NVL(X,值)

如果X为空,则返回值,否则返回X

例:工资低于2000元的员工,如果不发放奖金,则每位员工将获得100元奖金。

代码演示:NVL函数

SQL> ENAME,JOB,SAL,NVL(COMM,100) FROM EMP WHERE SAL

ENAME 作业 SAL NVL(COMM,100)

史密斯职员 800 100

艾伦 1600 300

病房 1250 500

1250 1400

1500 50

亚当斯职员 1100 100

詹姆斯·克拉克 950 100

7行

NVL2(x,,)

如果x不为空则返回,否则返回

例:EMP表中工资低于2000元的员工,如果没有奖金,则奖金为200元。 若有奖金,则在原奖金基础上再加100元。

代码演示:NVL2函数

SQL> ENAME,JOB,SAL,NVL2(COMM,comm+100,200) “comm”2 FROM EMP WHERE SAL

ENAME 工作 SAL 通讯

史密斯职员 800 200

艾伦 1600 400

病房 1250 600

1250 1500

1500 150

亚当斯职员 1100 200

詹姆斯·克拉克 950 200

文员 1300 200

8行

聚合函数

聚合函数同时对一组数据进行操作并返回一行结果,例如计算一组数据的总和、平均值等。

姓名

影响

语法

平均电压

平均值

平均值(表达式)

SUM(表达式)

最小、最大

最小值、最大值

MIN(表达式)、MAX(表达式)

数数

统计数据

计数(表达式)

示例:查找本月所有员工的基本工资总额

代码演示:sum函数

SQL> SUM(sal) FROM emp;

总和(萨尔)

29025

示例:求不同部门的平均工资

代码演示:AVG功能下的分组查询

SQL> ,AVG(SAL) FROM EMP GROUP BY ;

平均(萨尔)

30 1566.66666

20 2175

10 2916.66666

功能使用

含义解释:

(条件,值1,返回值1,值2,返回值2,...值n,返回值n,默认值)

该函数的含义如下:

IF 条件=值 1 THEN

(翻译值1)

ELSIF 条件=值2 THEN

(翻译值2)

……

ELSIF 条件= THEN

(翻译值n)

别的

(默认)

万一

(字段或字段操作,值1,值2,值3)

该函数的结果是,当字段或字段操作的值等于值1时,函数返回值2,否则返回值3

当然,值1、值2、值3也可以是表达式。 该函数使某些 SQL 语句变得更加简单。

指示:

1.比较尺寸

(sign(变量 1-变量 2),-1, 变量 1, 变量 2) 来自对偶; – 取较小的值

符号函数取数字 n 的符号。 如果大于 0,则返回 1;如果小于 0,则返回 -1;如果等于 0,则返回 0。

例如:

变量 1=10,变量 2=20

然后sign(变量1-变量2)返回-1,解码结果为“变量1”,达到取较小值的目的。

比如我想查询某班男生和女生的人数?

通常我们这样写:

从表中计数(*),其中性别 = 男性;

从表中计数(*),其中性别 = 女性;

如果你想把它们放在一起显示,就必须将它们联合起来,这太麻烦了。

只需一句话即可使用

sum((性别, 男, 1, 0)), sum((性别, 女, 1, 0)) 来自表

关键字命令和的区别: 在各种表上,无论大还是小,都非常快。 有命令则撤销,不撤销则不撤销。 它是一种 DDL 语言,与所有其他 DDL 语言一样,它将隐式提交并且不能在命令上使用。 高电平线和所有索引将被重置。 对整个表和索引进行全面浏览时,操作后的表比操作后的表要快得多。 无法触发任何触发器。 不能授予清空其他人的表的权限。 当表为空时,表和表的索引将被Reset 为原始大小并且不能。 父表无法被清除。 table() Drop(reuse) 默认为drop。 使用DROP时,表和表索引将被缩短,表将收缩到最小范围,并且NEXT参数将被重置。 REUSE 不会缩短表或调整 NEXT 参数。 在特殊情况下使用 REUSE ST。

语句执行删除的过程是每次从表中删除一行,同时将该行的删除操作作为事务记录保存在日志中,以供回滚操作。

TABLE一次性删除表中的所有数据页,并且不会在日志中记录单个删除操作记录。 删除的行无法恢复。 并且在删除过程中不会激活与该表相关的删除触发器。 执行速度很快。

TABLE 在功能上与不带 WHERE 子句的语句相同:都删除表中的所有行。 但 TABLE 速度更快,并且使用更少的系统和事务日志资源。

该语句一次删除一行,并在事务日志中为删除的每一行记录一个条目。 TABLE通过释放用于存储表数据的数据页来删除数据,并且只在事务日志中记录该页释放。

TABLE 删除表中的所有行,但保留表结构及其列、约束、索引等不变。 用于标识新行的计数将重置为该列的种子。

如果您想保留身份计数值,请改用。

以上只是对两个命令的用法的介绍。 这是我的推荐用法。 该命令速度快,占用资源少。 如果你确定当前表中的数据完全无用,可以使用这个命令。 方便快捷。 如果数据可能有用,那么你最好做好备份,否则一旦你使用了这个命令,你就会后悔的。 当然,该命令还是有好处的。 如果你不能保证数据将来是否有用,但目前又不知道,或者只是误删除了,那么可以直接使用命令回滚。 当然,命令可以更方便地添加回滚点、定位回滚、恢复数据。 因此,对于初学者来说,笔者强烈建议大家在删除数据时使用命令。 虽然有点麻烦,但是注意安全。 这就是我的教训。 我因滥用命令而清理了一张桌子。 幸好这张表无关紧要,不然我就只能感谢这个世界了。 当然,非常强烈建议大家在进行任何操作之前,一定要提前备份好有用的数据,这样无论需要还是不需要,都有备无患。

欢迎大家提出、分享、交流,共同学习、共同进步。

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码