UPPER_ATTRIBUTE_NAMES 函數 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

UPPER_ATTRIBUTE_NAMES 函數

使用與 相同的案例轉換常式,將SUPER值中所有適用的屬性名稱轉換為大寫UPPER 函數。UPPER_ATTRIBUTE_NAMES 支援 UTF-8 個多位元組字元,每個字元最多四個位元組。

若要將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.