`

细说plsql中的空值表达式

阅读更多

最近写sql的时候遇到了一些麻烦,一翻深究之后发现了关于空值表达式的规律,先看几个例子:

declare
a integer;
b integer;

c boolean;
begin
a := 1;
b := null;

c := (a=b);
if a = b then
dbms_output.put_line('print yes');
else
dbms_output.put_line('print no');
end if;
end;
结果是输出:print no

再反过来,写成

declare
a integer;
b integer;

c boolean;

begin
a := 1;
b := null;

c := (a!=b);
if a != b then
dbms_output.put_line('print yes');
else
dbms_output.put_line('print no');
end if;
end;

结果仍然是输出:print no

规律第一条:if条件中如果使用null来判断,那么结果总是为(非真)。

用dabug工具跟踪后发现,c的实际值既不是TURE也不是FALSE,也不是NULL,而是什么都没有(变量跟踪的值域里面空空如也,连“NULL”都不显示)。

进一步研究发现:

(NULL and TRUE)、(TRUE and NULL)、(NULL or FALSE)、(FALSE or NULL)的值都是非真且什么都没有;

(NULL or TRUE)、(TRUE or NULL)的值为TRUE;

(NULL and FALSE)、(FALSE and NULL)的值为FALSE;

规律第二条:and和or是有交换律的。

规律第三条:在and表达式中,只要有一个FALSE,就可以确定该表达式的值(为FALSE);在or表达式中,只要有一个TRUE,就可以确定该表达式的值(为TRUE);chucizhiwei

分享到:
评论

相关推荐

    ORACLE.PLSQL正则表达式概述

    在深入探讨ORACLE.PLSQL中的正则表达式之前,我们首先需要理解正则表达式的概念以及它在数据库查询中的应用价值。正则表达式(Regular Expression),简称regex或regexp,是一种用于模式匹配的强大工具,广泛应用于...

    PlSql中的 CnPlugin 插件

    **PlSql中的CnPlugin插件详解** PL/SQL Developer(简称PLSQL)是一款由Allround Automations公司开发的专业Oracle数据库管理与开发工具,它为数据库管理员和开发人员提供了强大的功能,包括编写、调试、执行SQL和...

    plsql 中文语言包

    总的来说,"plsql 中文语言包"是Oracle数据库开发人员和管理员的一大福音,它解决了语言障碍,使得中文用户能够更加自如地在PL/SQL Developer中进行开发和管理工作。通过简单的安装步骤,用户可以快速体验到全中文...

    PLSQL 中文乱码.docx

    在 PLSQL 中执行 SQL 语句时,如果语句中包含中文字符,输出的中文标题可能会显示成问号????。例如,以下是一条简单的 SQL 语句: ```sql SELECT * FROM table_name WHERE column_name = '中文字符'; ``` 在执行这...

    plsql中文使用说明

    plsql中文使用说明plsql中文使用说明plsql中文使用说明plsql中文使用说明plsql中文使用说明plsql中文使用说明

    PLSQL中文语言包

    PLSQL(Procedural Language/Structured Query Language)是Oracle数据库管理系统中的一个编程组件,它是SQL的面向过程的扩展,使得数据库管理员和开发人员能够编写复杂的数据库应用程序。在Oracle环境中,PLSQL提供...

    PLSQL最新中文手册

    在PLSQL中,你可以创建一系列的程序逻辑,如循环、条件判断、异常处理等,这些在单纯的SQL语句中通常是无法实现的。PLSQL的结构包括声明部分、执行部分和异常处理部分,这使得开发者可以构建复杂的业务逻辑。 ...

    PLSQL 中文手册.7z

    在PLSQL中,有几个核心概念和语法结构是必须要了解的: 1. **块结构**:PLSQL代码以块的形式组织,包括声明部分、执行部分和异常处理部分。基本块结构包括 DECLARE(声明)、BEGIN(开始)、EXECUTE(执行)和...

    PLSQL中文插件破解补丁

    PLSQL安装程序、中文插件和破解补丁,将补丁拖进去就OK了

    plsql快捷插件及中文插件

    plsql快捷插件,下载放入 plsql安装路径的PlugIns文件下就能用,还有中文插件,傻瓜式安装就可以使用,希望能帮助到小伙伴

    PLSQL中文详细使用教程 有标签可快速定位

    1. 变量与常量:PLSQL中的变量用于存储数据,常量则不可更改。声明变量时,需要指定数据类型,如NUMBER、VARCHAR2等。 2. 控制结构:包括IF-THEN-ELSE、CASE语句用于条件判断,WHILE和FOR循环用于迭代执行。 3. 子...

    plsql汉化补丁

    4. 应用:安装完成后,汉化补丁会自动应用到PLSQL Developer中,或者可能需要重启软件以使更改生效。 5. 验证:启动PLSQL Developer,检查是否已经成功变为中文界面。如果未成功,可能需要检查安装过程是否有误,...

    plsql汉化插件

    在使用汉化插件的过程中,可能会遇到一些问题,如界面显示异常、功能失效等。这时,可以通过以下方式解决: - **兼容性问题**:确认汉化插件与PLSQL Developer的版本匹配,不同版本的PLSQL Developer可能需要不同的...

    plsql 中文 绿色 破解

    plsql 中文 绿色 破解

    PLSQL导出CSV后中文乱码解决办法

    PLSQL(Procedural Language/SQL)是Oracle数据库系统中用于编写存储过程、函数、包等的编程语言,它提供了丰富的功能来处理和操作数据库中的数据。当需要将PLSQL查询结果导出为CSV(Comma Separated Values)格式时...

    PLSQL Developer9.0.5中文绿色版

    标题中的“PLSQL Developer 9.0.5中文绿色版”表明这是PLSQL Developer的9.0.5版本,并且是中文语言的支持,同时还是一个绿色版,意味着它不需要安装,解压后即可直接使用,方便快捷,无需担心在计算机上留下冗余的...

    PLSQL语言初级教程

    - **索引、分区**:了解如何在PLSQL中创建和管理索引,以及对大表进行分区。 - **存储过程、触发器**:学习创建和调用存储过程,以及使用触发器实现自动化操作。 8. **PLSQL性能优化** - **索引优化**:合理创建...

    plsql中文免安装版

    PLSQL是Oracle数据库中的编程语言,全称为Procedural Language/Structured Query Language,它是SQL的扩展,添加了过程化编程元素,使得开发者可以编写复杂的业务逻辑和数据库操作。在PLSQL Developer中,你可以进行...

Global site tag (gtag.js) - Google Analytics