UPPER_ATTRIBUTE_NAMES 函数
使用与 UPPER 函数相同的大小写转换例程,将 SUPER 值中的所有适用属性名称转换为大写。UPPER_ATTRIBUTE_NAMES 支持 UTF-8 多字节字符,每个字符最多可以有 4 个字节。
要将 SUPER 属性名称转换为小写,请使用 LOWER_ATTRIBUTE_NAMES 函数。
语法
UPPER_ATTRIBUTE_NAMES(super_expression)
参数
- super_expression
-
SUPER 表达式。
返回类型
SUPER
示例
将 SUPER 属性名称转换为大写
以下示例使用 UPPER_ATTRIBUTE_NAMES 来转换表中所有 SUPER 值的属性名称。
-- Create a table and insert several SUPER values. CREATE TABLE t (i INT, s SUPER); INSERT INTO t VALUES (1, NULL), (2, 'a'::SUPER), (3, JSON_PARSE('{"AttributeName": "b"}')), (4, JSON_PARSE( '[{"Subobject": {"c": "c"}, "Subarray": [{"d": "d"}, "e"] }]')); -- Convert all attribute names to uppercase. UPDATE t SET s = UPPER_ATTRIBUTE_NAMES(s); SELECT i, s FROM t ORDER BY i;
i | s ---+-------------------------------------------------- 1 | NULL 2 | "a" 3 | {"ATTRIBUTENAME":"B"} 4 | [{"SUBOBJECT":{"C":"c"},"SUBARRAY":[{"D":"d"}, "e"]}]
观察 UPPER_ATTRIBUTE_NAMES 的工作原理。
NULL 值和标量 SUPER 值(例如
"a"
)保持不变。在 SUPER 对象中,所有属性名称都更改为大写,但诸如
"b"
之类的属性值保持不变。UPPER_ATTRIBUTE_NAMES 以递归方式应用于嵌套在 SUPER 数组或其它对象内的任何 SUPER 对象。
在具有重复属性名称的 SUPER 对象上使用 UPPER_ATTRIBUTE_NAMES
如果 SUPER 对象包含的属性的名称仅在大小写上有所不同,则 UPPER_ATTRIBUTE_NAMES 将引发错误。考虑以下示例。
SELECT UPPER_ATTRIBUTE_NAMES(JSON_PARSE('{"A": "A", "a": "a"}'));
error: Invalid input code: 8001 context: SUPER value has duplicate attributes after case conversion.