国产数据库---Oracle迁移至GBase8a---第二章---谓词

  1. 谓词
    1. 综述

Oracle 和 GBase 8a 都可以很好的支持 SELECT 、 UPDATE、DELETE 声明中的 WHERE 字句和 HAVING 字句。其中REGEXP_LIKE(string_表达式, pattern)可以使用 GBase 8a 的expr REGEXPpattern表达式来代替,但 REGEXP_LIKE(string_表达式, pattern, match_parameter)等特殊的函数或谓词就不被GBASE 8A支持。

对于这些谓词我们从下面几个方面来进行介绍:

条件比较操作符、存在条件谓词、浮点谓词、内部条件谓词、is/member、空条件谓词、模式匹配谓词、范围条件、 XML 条件。

    1. 逻辑谓词

逻辑谓词的作用是结合两个条件,返回一个判断结果。Oracle有AND、OR、NOT个逻辑谓词,GBase 8a 完全支持这三个谓词,且含义与Oracle中完全相同,在迁移时不用改变。

    1. 比较谓词

比较谓词用于对两个表达式进行比较。Oracle 支持6个比较谓词,分别为=、<>、<、<=、>和>=, GBase 8a 支持这些比较谓词,且含义与Oracle完全相同,在迁移的时候不做改变。

    1. 存在谓词

存在谓词用于测试子查询中的行是否存在。Oracle 支持两个存在谓词,分别为EXISTS和NOT EXISTS,GBase 8a 支持这两个存在谓词,含义与Oracle中完全相同,在迁移时不做改变。

    1. 浮点谓词

浮点谓词用来判断表达式的结果是不是无穷大或是不是数字。Oracle 支持 4 个浮点谓词,分别是 INFINITE, IS NOT INFINITE, IS NAN, 和 IS NOT NAN 。

GBase 8a 中不支持浮点谓词。

    1. In 谓词

In 谓词测试指定的值是否可以在集合中找到。Oracle 支持2 个 In 谓词,分别为IN和NOT IN,GBase 8a 支持这两个In 谓词,且含义与Oracle相同,在迁移的时候不做改变。

    1. 判断/成员谓词

判断/成员谓词可以测试一个值是否是一个特殊的形式。Oracle 支持12 个判断/成员谓词,包括 IS [NOT] A SET, IS ANY, IS [NOT] EMPTY, IS [NOT] OF type, IS PRESENT, [NOT] MEMBER, [NOT] SUBMULTISET 。

GBase 8a 不支持判断/成员谓词。

    1. Null判断谓词

Null 判断谓词用来测试表达式是否为 NULL 值。Oracle 支持2个 null 谓词,分别为IS NULL 和IS NOT NULL。

GBase 8a 支持这两个谓词,且与Oracle中的同名谓词含义相同,在迁移时不做改变。

    1. 模式匹配谓词

模式匹配谓词用来测试一个值是否匹配一个指定的模式。Oracle 支持9 个模式匹配谓词。

GBase 8a 仅支持LIKE 和 NOT LIKE 两个模式匹配谓词,Oracle中支持的其它模式匹配谓词在GBase 8a 中不被支持。

    1. 范围表达式

范围表达式测试在一个范围内包含的值,Oracle 支持2个范围表达式,分别为BETWEEN 和 NOT BETWEEN。

GBase 8a 支持这两个范围表达式,且与Oracle中含义相同,在迁移时不做改变。

    1. XML操作谓词

GBase 8a 中不支持XML表达式,也不能对XML文件进行处理,因此GBase 8a 中不支持XML操作谓词。

    1. 谓词优先级

在同一条 SQL 语句中可能存在多个条件和谓词,处理这些条件和谓词数据库系统有相应的顺序。对于条件的执行顺序,遵守从高到低的原则。对于表达式遵循从左向右执行的顺序。括号可以提高表达式的执行权限。Oracle 中圆括号内的表达式先于括号外的表达式执行。GBase 8a 同样遵守这些规则。

下表从高到低的列出了 Oracle 和 GBase 8a 谓词的优先级。

ORACLE

GBase 8a

NOT

比较谓词 (= <> < <= > >=)

比较谓词(= <> < <= > >=), IS [NOT]  NULL, LIKE, [NOT] IN, REGEXP

IS [NOT] NULL, LIKE, [NOT]BETWEEN,  [NOT] IN, EXISTS,IS OF type

[NOT] BETWEEN

NOT

AND

AND

OR

OR

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值