LOWERFunzione _ ATTRIBUTE _ NAMES - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

LOWERFunzione _ ATTRIBUTE _ NAMES

Converte tutti i nomi degli attributi applicabili in un SUPER valore in lettere minuscole, utilizzando la stessa routine di conversione delle maiuscole di. LOWERfunzione LOWER_ ATTRIBUTE _ NAMES supporta UTF -8 caratteri multibyte, fino a un massimo di quattro byte per carattere.

Per convertire i nomi SUPER degli attributi in lettere maiuscole, utilizzare il. UPPERFunzione _ ATTRIBUTE _ NAMES

Sintassi

LOWER_ATTRIBUTE_NAMES(super_expression)

Argomenti

super_expression

Un'espressione SUPER.

Tipo restituito

SUPER

Note per l'utilizzo

In Amazon Redshift, gli identificatori di colonna tradizionalmente non fanno distinzione tra maiuscole e minuscole e vengono convertiti in lettere minuscole. Se acquisisci dati da formati di dati con distinzione tra maiuscole e minuscole, ad esempio, i dati potrebbero contenere nomi di attributi composti da maiuscole e minuscole. JSON

Analizza l'esempio seguente.

CREATE TABLE t1 (s) AS SELECT JSON_PARSE('{"AttributeName": "Value"}'); SELECT s.AttributeName FROM t1; attributename ------------- NULL SELECT s."AttributeName" FROM t1; attributename ------------- NULL

Amazon Redshift restituisce i dati NULL per entrambe le query. Per eseguire una queryAttributeName, usa LOWER _ ATTRIBUTE _ NAMES per convertire i nomi degli attributi dei dati in lettere minuscole. Analizza l'esempio seguente.

CREATE TABLE t2 (s) AS SELECT LOWER_ATTRIBUTE_NAMES(s) FROM t1; SELECT s.attributename FROM t2; attributename ------------- "Value" SELECT s.AttributeName FROM t2; attributename ------------- "Value" SELECT s."attributename" FROM t2; attributename ------------- "Value" SELECT s."AttributeName" FROM t2; attributename ------------- "Value"

Un'opzione correlata per lavorare con nomi di attributi di oggetti con maiuscole e minuscole è l'opzione di enable_case_sensitive_super_attribute configurazione, che consente ad Amazon Redshift di riconoscere maiuscole e minuscole SUPER nei nomi degli attributi. Questa può essere una soluzione alternativa all'utilizzo LOWER di _ _. ATTRIBUTE NAMES Per ulteriori informazioni suenable_case_sensitive_super_attribute, vai aenable_case_sensitive_super_attribute.

Esempi

Conversione dei nomi SUPER degli attributi in lettere minuscole

L'esempio seguente utilizza LOWER _ ATTRIBUTE _ NAMES per convertire i nomi degli attributi di tutti i SUPER valori in una tabella.

-- 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 lowercase. UPDATE t SET s = LOWER_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"]}]

Osservate come NAMES funziona LOWER ATTRIBUTE _ _.

  • NULLi valori e i valori scalariSUPER, ad esempio, "A" sono invariati.

  • In un SUPER oggetto, tutti i nomi degli attributi vengono modificati in lettere minuscole, ma i valori degli attributi, ad esempio, rimangono invariati. "B"

  • LOWER_ ATTRIBUTE _ NAMES si applica in modo ricorsivo a qualsiasi SUPER oggetto annidato all'interno di un array o all'interno di un SUPER altro oggetto.

Utilizzo di LOWER _ ATTRIBUTE _ NAMES su un SUPER oggetto con nomi di attributi duplicati

Se un SUPER oggetto contiene attributi i cui nomi differiscono solo nelle maiuscole e minuscole, LOWER ATTRIBUTE _ _ NAMES genererà un errore. Analizza l'esempio seguente.

SELECT LOWER_ATTRIBUTE_NAMES(JSON_PARSE('{"A": "A", "a": "a"}')); error: Invalid input code: 8001 context: SUPER value has duplicate attributes after case conversion.