返回首页

gbase数据、南大通用产品文档:GBase8a13:50:

更新日期:2024年09月11日

node (192.168.146.42)
backup table begin

函数说明
如果操作数为0,返回1;如果操作数为非零,返回0;如果操作数为NULL,返回
NULL。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 378
示例

示例1:操作数为非零,返回值为0。
gbase> SELECT NOT 10 FROM t;
+--------+
| NOT 10 |
+--------+
| 0 |
+--------+
1 row in set

示例2:操作数为0,返回值为1。
gbase> SELECT NOT 0 FROM t;
+-------+
| NOT 0 |
+-------+
| 1 |
+-------+
1 row in set

示例3:操作数为NULL,返回值为NULL。
gbase> SELECT NOT NULL FROM t;
+-----------+
| NOT NULL |
+-----------+
| NULL |
+-----------+
1 row in set

示例4:表达式的值为非零,返回值为0。
gbase> SELECT ! (1+1) FROM t;
+---------+
| ! (1+1) |
+---------+
| 0 |
+---------+
1 row in set

示例5:表达式! 1+1 与(!1)+1 等价,执行结果为1。
gbase> SELECT ! 1+1 FROM t;
+-------+
| ! 1+1 |
+-------+

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 379
| 1 |
+-------+
1 row in set

gbase> SELECT (!1)+1 FROM t;
+--------+
| (!1)+1 |
+--------+
| 1 |
+--------+
1 row in set

示例6:..NOT IN...
gbase> SELECT 1 NOT IN (2,3,null) FROM t;
+---------------------+
| 1 NOT IN (2,3,null) |
+---------------------+
| NULL |
+---------------------+
1 row in set

可以定义称为触发器例程专用 SPL 例程,
此类例程只能从触发器操作的 FOR EACH ROW
段进行调用。
与 EXECUTE FUNCTION 或 EXECUTE PROCEDURE 例程可以从触发操作
列表中调用的普通 UDR 不同,触发器例程包含自己的 REFERENCING 子句,可用于为
触发操作修改的行中原有列和新列值定义相关名。这些相关名可以在触发器例程中的 SPL
语句中引用,为触发操作可在表或视图中修改数据的方式提供更大的灵活性。
触发器例程也可使用称为 DELETING 、
INSERTING 、
SELECTING 和 UPDATING 触发
器类型的布尔运算符,以标识已调用触发器例程的触发器的类型。触发器例程还可以调
用 mi_trigger* 例程(有时称为触发器自省类型)来获取关于已调用触发器例程的上下文的
信息。
触发器例程由包含 WITH TRIGGER REFERENCES 关键字的 EXECUTE FUNCTION 或
EXECUTE PROCEDURE 语句调用。
这些语句必须从触发操作的 FOR EACH ROW 段中调
用触发器例程,而不是从 BEFORE 或 AFTER 段中进行调用。
有关支持定义和执行触发器例程的 SQL 的 CREATE FUNCTION 、CREATE
PROCEDURE 、
EXECUTE FUNCTION 和 EXECUTE PROCEDURE 语句的语法特征的信
息,
请参阅
《GBase 8s SQL 指南:
语法》

有关 mi_trigger* 例程的更多信息,
请参阅
《GBase
8s DataBlade API 程序员指南》。