暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T 测试运算符

墨天轮 2019-10-12
479

测试运算符

GaussDB 100支持表1成员、范围的测试运算符:

表1 测试运算符

运算符

描述

IN

元素在指定的集合中。

NOT IN

元素不在指定的集合中。

EXISTS

存在符合条件的元素。

NOT EXISTS

不存在符合条件的元素。

BETWEEN…AND…

在两者之间,例如a BETWEEN x AND y等效于a >= x and a <= y。

NOT BETWEEN…AND…

不在两者之间,例如a NOT BETWEEN x AND Y等效于a < x or a > y。

IS NULL

等于NULL。

IS NOT NULL

不等于NULL。

LIKE ...[ESCAPE char]

与…相匹配。

仅支持字符类型。

NOT LIKE...[ESCAPE char]

与…不匹配。仅支持字符类型。

REGEXP

字符串与正则表达式相匹配,仅支持STRING类型。

REGEXP_LIKE

字符串与正则表达式相匹配,支持STRING类型和NUMBER类型。

语法:

REGEXP_LIKE(str,pattern[,match_param])
  • 入参str是需要进行正则处理的字符串,支持STRING类型和NUMBER类型。
  • 入参pattern是进行匹配的正则表达式。
  • 入参match_param表示模式('i'表示不区分大小写进行检索;'c'表示区分大小写进行检索。默认为'c'。)。

表达式返回值是BOOL类型。

ANY

子查询中有一个值满足条件即可。

示例:

--创建一个表。 drop table if exists T_TEST_OPERATOR; create table T_TEST_OPERATOR(ID int, NAME varchar(36));
--往表中插入四条记录。 insert into T_TEST_OPERATOR(ID,NAME) VALUES (1,'zhangsan'); insert into T_TEST_OPERATOR(ID,NAME) VALUES (2,'lisi'); insert into T_TEST_OPERATOR(ID,NAME) VALUES (3,'wangwu'); insert into T_TEST_OPERATOR(ID,NAME) VALUES (999,null); commit;
--IN运算符。 select * from T_TEST_OPERATOR where ID IN(1,2); select * from T_TEST_OPERATOR where NAME IN('zhangsan');
--NOT IN运算符。 select * from T_TEST_OPERATOR where ID NOT IN(1,2); select * from T_TEST_OPERATOR where NAME NOT IN('zhangsan');
--EXISTS运算符。 select count(1) from SYS_DUMMY where EXISTS(select ID from T_TEST_OPERATOR where NAME='zhangsan');
--NOT EXISTS运算符。 select count(1) from SYS_DUMMY where NOT EXISTS(select ID from T_TEST_OPERATOR where NAME='zhangsan');
--BETWEEN…AND…运算符。 select * from T_TEST_OPERATOR where ID BETWEEN 1 AND 2;
--NOT BETWEEN…AND…运算符。 select * from T_TEST_OPERATOR where ID NOT BETWEEN 1 AND 2;
--IS NULL运算符。 select * from T_TEST_OPERATOR where NAME IS NULL;
--IS NOT NULL运算符。 select * from T_TEST_OPERATOR where NAME IS NOT NULL;
--LIKE ...[ESCAPE char]运算符。 select * from T_TEST_OPERATOR where NAME LIKE '%an%'; select * from T_TEST_OPERATOR where NAME LIKE '\%an%' ESCAPE '\';
--NOT LIKE...[ESCAPE char]运算符。 select * from T_TEST_OPERATOR where NAME NOT LIKE '%an%'; select * from T_TEST_OPERATOR where NAME NOT LIKE '\%an%' ESCAPE '\';
--REGEXP运算符。 select * from T_TEST_OPERATOR where NAME REGEXP '[a-z]*';
--REGEXP_LIKE运算符。 select * from T_TEST_OPERATOR where REGEXP_LIKE (NAME ,'[a-z]*');
--ANY运算符。 select * from T_TEST_OPERATOR where ID = ANY(1,3,5); select * from T_TEST_OPERATOR where NAME = ANY('zhangsan');
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论