oracle的nvl函数的用法
通过查询获得某个字段的合计值,如果这个值位null将给出一个预设的默认值
select nvl(sum(t.dwxhl),1) from tb_jhde t where zydm=-1
这里关心的nvl的用法,nvl(arg,value)代表如果前面的arg的值为null那么返回的值为后面的value
如: NVL(a,b)就是判断a是否是NULL,如果不是返回a的值,如果是返回b的值 通过查询获得某个字段的合计值,如果这个值位null将给出一个预设的默认值
另一个有关的有用方法
declare
i integer
select nvl(sum(t.dwxhl),1) into i from tb_jhde t where zydm=-1
这样就可以把获得的合计值存储到变量i中,如果查询的值为null就把它的值设置为默认的1
Oracle下Nvl函数 nvl( ) 函数 从两个表达式返回一个非 null 值。
语法
NVL(eExpression1, eExpression2)
参数
eExpression1, eExpression2
如 果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 .NULL.。
返回值类型
字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值
说明
在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。 select nvl(a.name,'空得') as name from student a join school b on a.ID=b.ID 注意:两个参数得类型要匹配 问:什么是NULL? 答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL, 我们称它为空,ORACLE中,含有空值的表列长度为零。
ORACLE允许任何一种数据类型的字段为空,除了以下两种情况:
1、主键字段(primary key),
2、定义时已经加了NOT NULL限制条件的字段
说明:
1、等价于没有任何值、是未知数。
2、NULL与0、空字符串、空格都不同。
3、对空值做加、减、乘、除等运算操作,结果仍为空。
4、NULL的处理使用NVL函数。
5、比较时使用关键字用“is null”和“is not null”。
6、空值不能被索引,所以查询时有些符合条件的数据可能查不出来, count(*)中,用nvl(列名,0)处理后再查。
7、排序时比其他数据都大(索引默认是降序排列,小→大), 所以NULL值总是排在最后。
使用方法:
SQL> select 1 from dual where null=null; 没有查到记录
SQL> select 1 from dual where null=''; 没有查到记录
SQL> select 1 from dual where ''=''; 没有查到记录
SQL> select 1 from dual where null is null; 1 SQL> select 1 from dual where nvl(null,0)=nvl(null,0); 1 对空值做加、减、乘、除等运算操作,结果仍为空。
SQL> select 1+null from dual;
SQL> select 1-null from dual;
SQL> select 1*null from dual;
SQL> select 1/null from dual; 查询到一个记录. 注:这个记录就是SQL语句中的那个null 设置某些列为空值 update table1 set 列1=NULL where 列1 is not null;
现有一个商品销售表sale
表结构为: month char(6)
create table sale (month char(6),sell number);
insert into sale values('200001',1000);
insert into sale values('200002',1100);
insert into sale values('200003',1200);
insert into sale values('200004',1300);
insert into sale values('200005',1400);
insert into sale values('200006',1500);
insert into sale values('200007',1600);
insert into sale values('200101',1100);
insert into sale values('200202',1200);
insert into sale values('200301',1300);
insert into sale values('200008',1000);
insert into sale(month) values('200009'); (注意:这条记录的sell值为空)
SQL> select * from sale where sell like '%';
MONTH SELL
200001 1000
200002 1100
200003 1200
200004 1300
200005 1400
200006 1500
200007 1600
200101 1100
200202 1200
200301 1300
200008 1000
11 rows selected.
查询到11记录. 结果说明: 查询结果说明此SQL语句查询不出列值为NULL的字段 此时需对字段为NULL的情况另外处理。
SQL> select * from sale where sell like '%' or sell is null;
SQL> select * from sale where NVL(sell, 0) like '%';
MONTH SELL
200001 1000
200002 1100
200003 1200
200004 1300
200005 1400
200006 1500
200007 1600
200101 1100
200202 1200
200301 1300
200008 1000
MONTH SELL
200009
12 rows selected.
Oracle的空值就是这么的用法,我们最好熟悉它的约定,以防查出的结果不正确
分享到:
相关推荐
我们可以使用NVL函数来处理这种情况: ```sql SELECT employee_id, NVL(salary, 0) AS salary FROM employees; ``` 在这个例子中,如果`salary`是NULL,那么将被替换为0。 #### DECODE函数 DECODE函数类似于一个...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其丰富的函数和方法库为SQL查询提供了强大的支持。在日常的数据操作和分析中,掌握一些常用的Oracle函数和方法是至关重要的。以下是对"Oracle最常用的...
Oracle内置函数是数据库管理系统Oracle中不可或缺的一部分,它们用于执行各种数据处理任务,包括数学运算、字符串操作、日期...因此,建议定期查阅官方文档,不断探索和尝试新的函数用法,以适应不断变化的业务需求。
1. **NVL函数** `NVL(expr1, expr2)` 是一个非常常用的函数,它的作用是当`expr1`为NULL时,返回`expr2`的值,否则返回`expr1`的值。这里的`expr1`和`expr2`都应该是相同的数据类型,以确保返回值的类型一致性。在...
### ORACLE函数及其用法详解 #### 概述 Oracle是一种广泛使用的数据库管理系统,它提供了丰富的内置函数,这些函数能够帮助开发者和数据库管理员更高效地处理数据。本文将详细介绍Oracle中的一些常用函数及其应用...
Oracle 函数大全 Oracle 函数大全是 Oracle 数据库管理系统中的一系列函数,...本文档中还介绍了更多的单行函数和组函数,详细的讲解了每个函数的使用方法和示例代码,为开发者提供了一个 Oracle 函数大全的参考手册。
NVL函数用于处理NULL值,它将检查提供的表达式是否为NULL,如果是,它将返回第二个参数的值。基本语法为: ```sql NVL(expression, replacement_value) ``` - `expression`:可能为NULL的表达式。 - `...
`NVL` 函数是 Oracle 数据库特有的,它的基本用法是 `NVL(expression1, expression2)`。如果 `expression1` 为 NULL,`NVL` 将返回 `expression2` 的值;否则,返回 `expression1` 的值。这个函数常用于在查询时避免...
Oracle内置函数可以分为多种类型,包括算术函数、字符串函数、日期时间函数、转换函数、系统信息函数、控制结构函数等。这些函数在SQL查询、数据处理和存储过程编写中扮演着关键角色。 1. **算术函数**:例如`+`、`...
Oracle数据库系统是世界上最广泛使用的...在"oracle内置函数大全.sql"文件中,可能包含了所有这些函数的示例和用法,供用户参考和实践。通过深入研究这个文件,可以深入了解Oracle SQL的功能,并提升数据库管理技能。
以上只是Oracle特殊函数中的一部分,实际应用中还有许多其他函数,如 `DECODE`、`CASE` 语句等,可以根据具体需求灵活选择和组合使用。熟练掌握这些函数,能有效提高在Oracle SQL中的编程效率和数据处理能力。在实际...
这段代码使用了NVL函数来确保`SUM(c.f_factplan)`的结果即使为NULL也能返回0。 ##### 2. TO_CHAR 函数 TO_CHAR 函数用于将日期或数值转换为字符。 - **语法**: ```sql TO_CHAR(date_or_numeric_expr, format_...
Oracle的NVL函数用于处理NULL值,其语法为`NVL(Expr1, Expr2)`。这个函数的基本逻辑是:如果`Expr1`的值为NULL,那么NVL函数返回`Expr2`的值;否则,它返回`Expr1`的原始值。如果`Expr1`和`Expr2`同时为NULL,NVL...
5. "oracle函数介绍(6) 著名函数之分析函数.doc"和"oracle函数介绍(7) 非著名函数之分析函数.doc"会进一步详细讨论这些高级函数,可能包括窗口函数的用法和实例。 6. "oracle函数介绍(8) 综述.doc"应该是对前面所有...
通过这份"oracle函数大全(分类显示).chm"文档,你可以详细了解到每个函数的具体用法、参数和返回值,从而更好地理解和应用到实际的数据库操作中。随着对Oracle的理解加深,你会发现这些函数能极大地提高你的数据库...
通过"Oracle函数大全(分类显示).chm"这个文档,你可以全面了解并掌握这些函数的使用方法和应用场景,从而更好地在Oracle数据库中进行数据操作和查询。这个资源对于数据库管理员、开发人员和数据分析者来说都是非常...
本文将基于给定文件信息,深入探讨和对比SQLServer与Oracle中的一些常用函数,这些函数涵盖了数学运算、数值处理、字符串操作等多个方面,对于数据库开发者和管理员而言,掌握这些函数的使用方法是提升工作效率的...
本文将详细介绍 DECODE 和 NVL 函数的使用方法和实践应用。 一、DECODE 函数 DECODE 函数是 Oracle 公司独家提供的功能,它是一个功能很强的函数,可以实现复杂的逻辑判断和数据处理。DECODE 函数的语法如下: ...
- `NVL/ISNULL`: 用于处理 NULL 值,Oracle 使用 `NVL`,SQL Server 使用 `ISNULL`。 3. **转换函数** - `TO_CHAR/CONVERT`: Oracle 和 SQL Server 都提供了将数字转换为字符串的函数。 - `TO_NUMBER/CONVERT`:...
解决这个问题的方法是使用NVL函数: ```sql UPDATE emp SET salary = (salary + NVL(bonus, 0)) * 1.1; ``` #### 四、组函数 组函数(聚合函数)用于对一组行的数据进行统计分析,常见的包括: - **COUNT()**: 统计...