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

GBase 8s 空字符串 与 NULL

LITTLE RED 2022-06-28
1414

GBase 8s 空字符串 与 NULL

数据准备

创建表 tab1 ,表结构与插入数据如下

c1 int c2 varchar(20)
“” 1
NULL 2
1 “”
2 NULL

空字符串 与 NULL 比较

GBase 8s 当数据类型为数值数据类型, 如 INT,空字符串插入值会转换为 NULL 存储。is null 子句与空字符串返回结果如图:

3403207150669.png

当数据类型为字符数据类型,如 VARCHAR ,GBase 8s 空字符串底层存储本质为字符串。空值与 NULL 的比较,可通过系统参数 ENABLE_NULL_STRING 控制。

ENABLE_NULL_STRING 配置参数,启用或禁用空字符串(’’)查询时是否等同于 NULL 的功能。
1 = 启用(缺省值),空字符串(’’)等同于 NULL
0 = 禁用,空字符串(’’)不等同于 NULL

如图所示,NULL 与空字符串在存储层面不等,但 IS NULL 子句视为相等。

2760519169095.png

主流数据库对于空字符串、空字符串与NULL比较的处理上,各有差异。GBase 8s 系统配置参数 ENABLE_NULL_STRING ,虽不改变底层存储,但从返回结果集角度,兼容各类数据库情况。

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

评论