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

华为GaussDB T 条件表达式

墨天轮 2019-10-12
744

条件表达式

ZENITH提供IS JSON、IS NOT JSON条件,可以用在约束、CASE、WHERE等条件表达式中,用于判断数据是否是JSON格式。

表1 IS JSON和IS NOT JSON对数据类型的支持情况

数据类型

IS JSON

IS NOT JSON

非法的JSON数据

FALSE

TRUE

空串''或空值NULL

NULL

NULL

标量JSON数据:数值、字符串、true、false

FALSE

TRUE

非标量合法的JSON数据:对象、数组

TRUE

FALSE

示例:

-- 为JSON列指定IS JSON约束 DROP TABLE IF EXISTS t_school; CREATE TABLE t_school(id INT, info CLOB check(info IS JSON));
-- 非法JSON数据,IS JSON返回FALSE,IS NOT JSON返回TRUE SELECT * FROM SYS_DUMMY WHERE '{ NOT JSON WELL-FORMATED JSON DATA}' IS JSON; SELECT * FROM SYS_DUMMY WHERE '' IS JSON; SELECT * FROM SYS_DUMMY WHERE NULL IS JSON;
-- 空串''、NULL,其IS JSON/IS NOT JSON结果都是NULL SELECT * FROM SYS_DUMMY WHERE '' IS JSON; SELECT * FROM SYS_DUMMY WHERE '' IS NOT JSON; SELECT * FROM SYS_DUMMY WHERE NULL IS JSON; SELECT * FROM SYS_DUMMY WHERE NULL IS NOT JSON;
-- 标量数据(数值、字符串、true、false、null),IS JSON返回FALSE,IS NOT JSON返回TRUE SELECT * FROM SYS_DUMMY WHERE '1.23456' IS JSON; SELECT * FROM SYS_DUMMY WHERE '"Hello"' IS JSON; SELECT * FROM SYS_DUMMY WHERE 'true' IS JSON; SELECT * FROM SYS_DUMMY WHERE 'false' IS JSON; SELECT * FROM SYS_DUMMY WHERE 'null' IS JSON;
-- 非标量合法的JSON数据(对象、数组),IS JSON返回TRUE,IS NOT JSON返回FALSE SELECT * FROM SYS_DUMMY WHERE '{}' IS JSON; SELECT * FROM SYS_DUMMY WHERE '{"name":"First Primary School"}' IS JSON; SELECT * FROM SYS_DUMMY WHERE '[]' IS JSON; SELECT * FROM SYS_DUMMY WHERE '[1,2,3]' IS JSON;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论