金仓数据库KingbaseES PLSQL比较运算符
关键字:
like、between、人大金仓、KingbaseES
PLSQL比较运算符简介
比较运算符是PL/SQL语言的基本元素之一,它们被用于比较两个变量或表达式的值。在PL/SQL中,比较运算符是十分常见的,因此,熟练地运用它们能提高代码的开发效率。
PL/SQL中提供了五种比较运算符,包括:
- IS [NOT] NULL运算符
- 关系运算符
- LIKE运算符
- BETWEEN运算符
- IN运算符
PLSQL比较运算符使用示例
2.1 IS [NOT] NULL运算符
IS NULL运算符用于判断参数值是否为空,我们可以使用IF value IS NULL来对value的值进行判断,如果其值为NULL,则返回布尔值TRUE;如果不为NULL,则返回FALSE。IS NOT NULL运算符的作用正好相反。
下面给出一个例子判断value的值,如果value为null,则函数返回1,如果不为空,则函数返回2:
\set SQLTERM / create or replace function func1() returns int as declare value int:=null; begin if value IS NULL then return 1; end if; if value is not null then return 2; end if; return 3; end; / \set SQLTERM ; select func1(); drop function func1; |
执行结果:
func1 ------- 1 (1 row) |
2.2 关系运算符
关系运算符也可以叫做比较运算符,PLSQL提供了六种关系运算符:=、!=(<>,或^=)、<、>、<=、>=。这些运算符可以用在各种数据类型上,包括数字,字符,日期等类型。下面是一个示例,使用show_boolean过程来打印使用关系运算符比较算术值的表达式的值:
\set SQLTERM / create or replace procedure show_boolean(a boolean) as begin if a then raise notice 'true'; else raise notice 'false'; end if; end; / \set SQLTERM ; \set SQLTERM / BEGIN show_boolean (1 + 1 = 2); show_boolean (1 + 1 <> 2); show_boolean (1 + 1 != 2); show_boolean (1 + 1 ^= 2); show_boolean (2 < 4); show_boolean (2 > 4); show_boolean (2 > 4); show_boolean (2 >= 2); END; / |
执行结果:
NOTICE: true NOTICE: false NOTICE: false NOTICE: false NOTICE: true NOTICE: false NOTICE: false NOTICE: true |
2.3 LIKE运算符
LIKE运算符用于在字符数据类型中进行模糊匹配。例如,我们可以使用%来匹配任意字符,使用_来匹配单个字符,下面是一个示例,字符串“Student”与模式“S%u__n”匹配,但与“S%U_N”不匹配:
\set SQLTERM / DECLARE PROCEDURE string_match ( value VARCHAR2, pattern VARCHAR2 ) IS BEGIN IF value LIKE pattern THEN RAISE NOTICE 'TRUE'; ELSE RAISE NOTICE 'FALSE'; END IF; END; BEGIN string_match('Stduent', 'S%u__t'); string_match('Stduent', 'S%U__N'); END; / |
执行结果:
NOTICE: TRUE NOTICE: FALSE |
2.4 BETWEEN运算符
BETWEEN运算符用于检查一个值是否在两个指定的范围之内。下面是一个示例,判断age是不是在18到30之内。
\set SQLTERM / declare age number:=20; begin if age between 18 and 30 then raise notice 'age is between 18 and 30'; end if; end; / |
执行结果:
NOTICE: age is between 18 and 30 |
2.5 IN运算符
IN运算符用于检查一个值是否在一个指定的集合范围内,下面是一个示例,用于检测年龄是否在指定的集合范围:
\set SQLTERM / declare age number:=20; begin if age in(18,20,25) then raise notice 'age is 18,20 or 25'; end if; end; / |
执行结果:
NOTICE: age is 18,20 or 25 |