Oracle基础用法

本文详细介绍了Oracle数据库中的几个关键函数,如nvl处理null值、coalesce获取非null的第一个表达式、greatest与least用于查找最大和最小值、replace、translate和decode进行字符串替换和条件判断,以及sign和trunc用于数值处理。同时概述了如何在SQL查询中应用这些函数进行数据操作和逻辑判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作环境:操作系统为Windows10-64位
操作版本:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Developer Version 12.0.7.1837 (64bit) 01.226959

$函数

一、nvl与coalesce

1、nvl(eExpression1, eExpression2)

从两个表达式返回一个非 null 值。

如果 eExpression1 的计算结果为 null 值,则 nvl( ) 返回 eExpression2。如果
eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为null 值,则 nvl( ) 返回 null。

2、coalesce(expression_1, expression_2, …,expression_n)

返回第一个非null表达式的类型。

coalesce是一个函数, (expression_1, expression_2, …,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用coalesce在于大部分包含空值的表达式最终将返回空值。

二、greast与least

1、greatest(expr_1, expr_2, …expr_n)

求多列的最大值。

greatest(expr_1, expr_2, …expr_n)函数从表达式(列、常量、计算值)expr_1, expr_2, … expr_n等中找出最大的数返回。在比较时,OracIe会自动按表达式的数据类型进行比较,以expr_1的数据类型为准。
当value值列表中有一个为null,则返回null值。

2、least(value1, value2, value3, …)

返回value值列表中最小的一个值。
当value值列表中有一个为null,则返回null值。

三、replace、translate与decode

1、replace(char, search_string [, replace_string])

用另外一个值来替代串中的某个值。
可以用一个匹配数字来替代字母的每一次出现。

如果没有指定replace_string 变量的值,那么当发现search_string 变量的值时,就将其删除。输入可以为任何字符数据类型——CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB或NCLOB。

2、translate(string,from_str,to_str)

返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。

translate 是 replace 所提供的功能的一个超集。如果 from_str 比 to_str 长,那么在 from_str 中而不在 to_str 中的额外字符将从 string 中被删除,因为它们没有相应的替换字符。to_str 不能为空。Oracle 将空字符串解释为 null,并且如果TRANSLATE 中的任何参数为null,那么结果也是 null。

3、decode(expr1,expr2,expr3,[expr4])

如果expr1 = expr2,decode函数返回expr3表达式的值。
如果expr1 != expr2,decode函数返回expr4表达式的值,如果expr4未指定,则返回null。

Decode函数的语法结构还包括如下:
decode (expression, search_1, result_1)
decode (expression, search_1, result_1, search_2, result_2)
decode (expression, search_1, result_1, search_2, result_2, …, search_n, result_n)
decode (expression, search_1, result_1, default)
decode (expression, search_1, result_1, search_2, result_2, default)
decode (expression, search_1, result_1, search_2, result_2, …, search_n, result_n, default)

decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。

四、sign与trunc

1、sign(number)

返回一个数字的正负标志。
如果number < 0,sign返回-1;
如果number = 0,sign返回0;
如果number > 0,sign返回1。

2、trunc(number, [ decimal_places ] )

number是要截取的数字。
decimal_places是要保留的小数位.。这个参数必须是个整数,如果此参数缺省,默认保留0位小数。
如果decimal_places 大于number 本身的小数位数,返回原数字不会加0。
如果decimal_places 为负数,那么将向左去除指定的位数。

trunc(125.815) =》 125
trunc(125.815, 0) =》 125
trunc(125.815, 1) =》 125.8
trunc(125.815, 2) =》 125.81
trunc(125.81, 3) =》 125.81
trunc(-125.815, 2) =》 -125.81
trunc(125.815, -1) =》 120
trunc(125.815, -2) =》 100
trunc(125.81, -3) =》 0

$用法

一、拼接列:||

select ename || '的工作是' || job as msg 
from emp
where deptno = 10;

在这里插入图片描述

二、条件逻辑:case when

select ename,sal,
case
  when sal <= 2000 then '过低'
  when sal >= 4000 then '过高'
  else 'OK'
end as status
from emp
where deptno = 10;

在这里插入图片描述

三、限制返回的行数:rownum

select * from emp where rownum <= 2;

在这里插入图片描述

免责声明:
1.编写此文是为了更好地学习Oracle的使用,如果损害了有关人的利益,请联系删除;
2.如果文中描述欠妥,请在评论中进行指正;
3.文字编写不易,若感觉有用,点赞收藏关注会让博主很开心哦;
4.此外,本文支持任何形式的转载,转载请注明出处,非常感谢!!!
本文源自:https://blog.youkuaiyun.com/testleaf/article/details/118630663
博客园cnblogs同号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

testleaf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值