广东工程建设咨询有限公司网站,政法大学 wordpress,html怎么做网站后台,安卓系统开发工具系列文章目录
Oracle PL/SQL基础语法学习12#xff1a;短路求值 Oracle PL/SQL基础语法学习13#xff1a;比较运算符 Oracle PL/SQL基础语法学习14#xff1a;BOOLEAN表达式 文章目录 系列文章目录Oracle PL/SQL基础语法学习13#xff1a;比较运算符比较运算符介绍官方文档…系列文章目录
Oracle PL/SQL基础语法学习12短路求值 Oracle PL/SQL基础语法学习13比较运算符 Oracle PL/SQL基础语法学习14BOOLEAN表达式 文章目录 系列文章目录Oracle PL/SQL基础语法学习13比较运算符比较运算符介绍官方文档比较运算符代码例Example 2-43 Relational Operators in ExpressionsExample 2-44 LIKE Operator in ExpressionExample 2-45 Escape Character in PatternExample 2-46 BETWEEN Operator in ExpressionsExample 2-47 IN Operator in ExpressionsExample 2-48 IN Operator with Sets with NULL Values 【免责声明】文章仅供学习交流观点代表个人与任何公司无关。 编辑|SQL和数据库技术(ID:SQLplusDB)
Oracle PL/SQL基础语法学习13比较运算符
比较运算符介绍
比较运算符是 PL/SQL 语言中的基本元素之一它们被用于比较两个变量或表达式的值。在 PL/SQL 中比较运算符是十分常见的因此熟练运用它们能够提高代码的开发效率。
PL/SQL 中提供了六个比较运算符, !或 , , , 。这些运算符可以用在各种数据类型上包括数字、字符、日期等类型。下面是一些示例
DECLAREa NUMBER : 100;b NUMBER : 50;c VARCHAR2(10) : hello;
BEGINIF a b THENDBMS_OUTPUT.PUT_LINE(a is greater than b);END IF;IF c ! world THENDBMS_OUTPUT.PUT_LINE(c is not equal to world);END IF;IF SYSDATE TO_DATE(2022-01-01, YYYY-MM-DD) THENDBMS_OUTPUT.PUT_LINE(It is in or after the year 2022);END IF;
END;输出结果
SQL set serverout on
SQL /
a is greater than b
c is not equal to world
It is in or after the year 2022PL/SQL 过程已成功完成。在上面的示例中我们分别使用了 , !或 和 三种比较运算符用于比较数字、字符和日期类型的数据。当条件成立时输出相应的信息。
需要注意的是在比较字符类型的数据时应该使用单引号将其括起来否则编译器将会把它们看做标识符。同时日期类型的数据需要使用 TO_DATE 函数将字符串转换为日期类型。
此外还有一种比较运算符叫做 IS NULL用于判断变量或表达式是否为空。例如
DECLAREa NUMBER;
BEGINIF a IS NULL THENDBMS_OUTPUT.PUT_LINE(a is null);END IF;
END;输出结果
SQL set serverout on
SQL /
a is nullPL/SQL 过程已成功完成。
在上面示例中当 a 为空时条件成立输出信息。
除了前面提到的六种比较运算符PL/SQL 还提供了三种其他比较运算符LIKE、BETWEEN 和 IN。这些运算符同样广泛应用于 PL/SQL 中的各种数据类型。下面我们来分别介绍这三种运算符的使用方法。
LIKE 运算符
LIKE 运算符用于在字符类型数据中进行模糊匹配。例如我们可以使用 % 来代表匹配任意字符使用 _ 来代表匹配单个字符。下面是一个示例
DECLAREname VARCHAR2(10) : Mary;
BEGINIF name LIKE Ma% THENDBMS_OUTPUT.PUT_LINE(name starts with Ma);END IF;IF name LIKE %r% THENDBMS_OUTPUT.PUT_LINE(name contains r);END IF;IF name LIKE __ry THENDBMS_OUTPUT.PUT_LINE(name has four characters with ry as the last two);END IF;
END;输出结果
SQL /
name starts with Ma
name contains r
name has four characters with ry as the last twoPL/SQL 过程已成功完成。
在上面的示例中我们使用了 % 和 _ 两个通配符来匹配字符类型数据中的内容。当条件成立时输出相应的信息。
BETWEEN 运算符
BETWEEN 运算符用于检查一个值是否在两个指定的值范围内。下面是一个示例
DECLAREage NUMBER : 20;
BEGINIF age BETWEEN 18 AND 30 THENDBMS_OUTPUT.PUT_LINE(age is between 18 and 30);END IF;
END;输出结果
SQL /
age is between 18 and 30PL/SQL 过程已成功完成。
在上面的示例中我们使用了 BETWEEN 运算符来检查一个年龄值是否在指定的范围内。当条件成立时输出相应的信息。
IN 运算符
IN 运算符用于检查一个值是否在一个指定的值列表内。下面是一个示例
DECLAREage NUMBER : 15;
BEGINIF age IN (18, 21, 25) THENDBMS_OUTPUT.PUT_LINE(age is 18, 21, or 25);END IF;
END;在上面的示例中我们使用了 IN 运算符来检查一个年龄值是否在指定的列表内。当条件成立时输出相应的信息。
LIKE、BETWEEN 和 IN 运算符是 PL/SQL 中常用的比较运算符之一它们分别用于在字符类型数据中进行模糊匹配、检查一个值是否在两个指定的值范围内、检查一个值是否在一个指定的值列表内。
总的来说比较运算符是 PL/SQL 中的重要组成部分。熟练掌握这些运算符能够帮助我们更快、更准确地开发代码提高程序的效率。 (注以上内容包括部分智能聊天机器人生成的内容)
官方文档比较运算符代码例
Example 2-43 Relational Operators in Expressions
BEGINprint_boolean ((2 2 4), 2 2 4);print_boolean ((2 2 4), 2 2 4);print_boolean ((2 2 ! 4), 2 2 ! 4);print_boolean ((2 2 ~ 4), 2 2 ~ 4);print_boolean ((2 2 ^ 4), 2 2 ^ 4);print_boolean ((1 2), 1 2);print_boolean ((1 2), 1 2);print_boolean ((1 2), 1 2);print_boolean ((1 1), 1 1);
END;
/
输出结果
(2 2 4) TRUE
(2 2 4) FALSE
(2 2 ! 4) FALSE
(2 2 ~ 4) FALSE
(2 2 ^ 4) FALSE
(1 2) TRUE
(1 2) FALSE
(1 2) TRUE
(1 1) TRUEExample 2-44 LIKE Operator in Expression
DECLAREPROCEDURE compare (value VARCHAR2,pattern VARCHAR2) ISBEGINIF value LIKE pattern THENDBMS_OUTPUT.PUT_LINE (TRUE);ELSEDBMS_OUTPUT.PUT_LINE (FALSE);END IF;END;
BEGINcompare(Johnson, J%s_n);compare(Johnson, J%S_N);
END;
/
输出结果
TRUE
FALSEExample 2-45 Escape Character in Pattern
DECLAREPROCEDURE half_off (sale_sign VARCHAR2) ISBEGINIF sale_sign LIKE 50\% off! ESCAPE \ THENDBMS_OUTPUT.PUT_LINE (TRUE);ELSEDBMS_OUTPUT.PUT_LINE (FALSE);END IF;END;
BEGINhalf_off(Going out of business!);half_off(50% off!);
END;
/
输出结果
FALSE
TRUEExample 2-46 BETWEEN Operator in Expressions
BEGINprint_boolean (2 BETWEEN 1 AND 3, 2 BETWEEN 1 AND 3);print_boolean (2 BETWEEN 2 AND 3, 2 BETWEEN 2 AND 3);print_boolean (2 BETWEEN 1 AND 2, 2 BETWEEN 1 AND 2);print_boolean (2 BETWEEN 3 AND 4, 2 BETWEEN 3 AND 4);
END;
/
输出结果
2 BETWEEN 1 AND 3 TRUE
2 BETWEEN 2 AND 3 TRUE
2 BETWEEN 1 AND 2 TRUE
2 BETWEEN 3 AND 4 FALSEExample 2-47 IN Operator in Expressions
DECLAREletter VARCHAR2(1) : m;
BEGINprint_boolean (letter IN (a, b, c),letter IN (a, b, c));print_boolean (letter IN (z, m, y, p),letter IN (z, m, y, p));
END;
/
输出结果
letter IN (a, b, c) FALSE
letter IN (z, m, y, p) TRUE
Example 2-48 IN Operator with Sets with NULL Values
DECLAREa INTEGER; -- Initialized to NULL by defaultb INTEGER : 10;c INTEGER : 100;
BEGINprint_boolean (100 IN (a, b, c), 100 IN (a, b, c));print_boolean (100 NOT IN (a, b, c), 100 NOT IN (a, b, c));print_boolean (100 IN (a, b), 100 IN (a, b));print_boolean (100 NOT IN (a, b), 100 NOT IN (a, b));print_boolean (a IN (a, b), a IN (a, b));print_boolean (a NOT IN (a, b), a NOT IN (a, b));
END;
/
输出结果
100 IN (a, b, c) TRUE
100 NOT IN (a, b, c) FALSE
100 IN (a, b) NULL
100 NOT IN (a, b) NULL
a IN (a, b) NULL
a NOT IN (a, b) NULL参考
https://docs.oracle.com/en/database/oracle/oracle-database/19/lnpls/plsql-language-fundamentals.html#GUID-319604CE-DC1C-49DF-9377-007C312F3B32