GBase 8c
其他
文章

GBase 8c 数据类型-范围类型 之 范围输入/输出

发表于2023-12-06 16:48:1339次浏览0个评论

范围值的输入必须遵循下列模式之一:
 

 

(lower-bound,upper-bound)

(lower-bound,upper-bound]

[lower-bound,upper-bound)

[lower-bound,upper-bound]

empty

圆括号或方括号指示上下界是否为被排除或被包含的。empty表示空范围。

lower-bound可以是作为subtype的合法输入的一个字符串,或者是空表示没有下界。同样,upper-bound可以是作为subtype的合法输入的一个字符串,或者是空表示没有上界。

l 每个界限值可以使用"(双引号)字符引用。如果界限值包含圆括号、方括号、逗号、双引号或反斜线时,必须使用双引号。否则那些字符认定为范围语法,而非界限值内容。

l 如需把双引号或反斜线放在被引用的界限值中,则需在前面添加使用一个反斜线。

l 在双引号引用的界限值中的一对双引号,表示为双引号字符,这与SQL字符串中的单引号规则类似。

l 用户可以避免引用,并且使用反斜线转义来保护所有数据字符,否则它们会被当做返回语法的一部分。

l 如需写一个空字符串的界限值,则可以写成""。什么都不写,默认表示一个无限界限。

l 范围值前后允许有空格,但是圆括号或方括号之间的任何空格,认定为上下界值的一部分。

示例

-- 包括 3,不包括 7,并且包括 3 和 7 之间的所有点

gbase=# SELECT  '[3,7)'::int4range;

[3,7)

-- 既不包括 3 也不包括 7,但是包括之间的所有点

gbase=# SELECT '(3,7)'::int4range;

[4,7)

-- 只包括单独一个点 4

gbase=# SELECT  '[4,4]'::int4range;

[4,5)

-- 不包括点(并且将被标准化为 '空')

gbase=# SELECT '[4,4)'::int4range;

empty

评论

登录后才可以发表评论