GBase 8s 空字符串 与 NULL
数据准备
创建表 tab1 ,表结构与插入数据如下
| c1 int | c2 varchar(20) |
|---|---|
| “” | 1 |
| NULL | 2 |
| 1 | “” |
| 2 | NULL |
空字符串 与 NULL 比较
GBase 8s 当数据类型为数值数据类型, 如 INT,空字符串插入值会转换为 NULL 存储。is null 子句与空字符串返回结果如图:

当数据类型为字符数据类型,如 VARCHAR ,GBase 8s 空字符串底层存储本质为字符串。空值与 NULL 的比较,可通过系统参数 ENABLE_NULL_STRING 控制。
ENABLE_NULL_STRING 配置参数,启用或禁用空字符串(’’)查询时是否等同于 NULL 的功能。
1 = 启用(缺省值),空字符串(’’)等同于 NULL
0 = 禁用,空字符串(’’)不等同于 NULL
如图所示,NULL 与空字符串在存储层面不等,但 IS NULL 子句视为相等。

主流数据库对于空字符串、空字符串与NULL比较的处理上,各有差异。GBase 8s 系统配置参数 ENABLE_NULL_STRING ,虽不改变底层存储,但从返回结果集角度,兼容各类数据库情况。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




