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

GBae 8s SQL 指南:语法_4. 数据类型和表达式_4.7 表达式(100)

GBASE数据库 2022-04-28
84

GBase 8s 禁止重新定义 NULL,因为允许这样定义会限制 NULL 关键字的全局作用域。为此,任
何限制全局作用域或重新定义关键字 NULL 的作用域的机制都会在语法上禁用涉及 NULL 值的任
何强制转型表达式。您必须确保关键字 NULL 的发生在所有表达式上下文中收到它的全局作用
域。
例如,请考虑下列 SQL 代码:
CREATE TABLE newtable
(
null int
);

SELECT null, null::int FROM newtable;
CREATE TABLE 语句是有效的,因为列标识符具有限定到表定义的引用的作用域;仅可在表的作
用域内访问它们。
然而,在该示例中的 SELECT 语句引起一些语法的多义性。出现在 projection 列表中的标识符
null 引用全局的关键字 NULL 吗?它引用在 CREATE TABLE 语句中声明了的列标识符 null 吗?
⚫ 如果将标识符 null 解释作为列名称,则带有 NULL 关键字的强制转型表达式的全局作用
域将会受限。
⚫ 如果将标识符 null 解释作为 NULL 关键字,则 SELECT 语句必须为 null 的发生生成
语法错误,因为 NULL 关键字仅可作为强制转型表达式出现在 projection 列表中。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论