Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog
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à.
Funzione JSON_EXTRACT_ARRAY_ELEMENT_TEXT
Nota
JSON_PARSE e le funzioni associate analizzano i valori JSON come SUPER, che Amazon Redshift analizza in modo più efficiente di VARCHAR.
Invece di utilizzare JSON_EXTRACT_ARRAY_ELEMENT_TEXT, consigliamo di analizzare le stringhe JSON utilizzando Funzione JSON_PARSE per ottenere un valore SUPER. Quindi esegui query sull’elemento desiderato con il relativo indice di array, utilizzando la sintassi value[element position]. Per ulteriori informazioni sull’esecuzione di query sugli elementi dell’array nei valori SUPER, consulta Query sui dati semistrutturati.
JSON_EXTRACT_ARRAY_ELEMENT_TEXT restituisce un elemento di array JSON nell'array più esterno di una stringa JSON, utilizzando un indice con base zero. Il primo elemento in un array è in posizione 0. Se l’indice è negativo o fuori intervallo, JSON_EXTRACT_ARRAY_ELEMENT_TEXT restituisce NULL. Se l'argomento null_if_invalid è impostato su TRUE e la stringa JSON non è valida, la funzione restituisce NULL invece di restituire un errore.
Per ulteriori informazioni, consulta Funzioni JSON.
Sintassi
JSON_EXTRACT_ARRAY_ELEMENT_TEXT('json string', pos [, null_if_invalid ] )
Arguments (Argomenti)
- json_string
-
Una stringa JSON correttamente formattata.
- pos
-
Un
INTEGERche rappresenta l'indice dell'elemento array da restituire, utilizzando un indice di array con base zero.
- null_if_invalid
-
(Facoltativo) Un valore
BOOLEANche specifica se restituireNULLse la stringa JSON di input non è valida, invece di restituire un errore. Per restituireNULLse JSON non è valido, specificatrue(t). Per restituire un errore se JSON non è valido, specificarefalse(f). Il valore predefinito èfalse.
Tipo restituito
VARCHAR-
Una stringa
VARCHARche rappresenta l'elemento dell'array JSON a cui fa riferimento pos.
Esempi
Per restituire un elemento di array alla posizione 2, che è il terzo elemento di un indice di array a base zero, utilizza l'esempio seguente.
SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('[111,112,113]', 2);+---------------------------------+ | json_extract_array_element_text | +---------------------------------+ | 113 | +---------------------------------+
Per restituire un errore poiché JSON non è valido, utilizza l'esempio seguente.
SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('["a",["b",1,["c",2,3,null,]]]',1);ERROR: invalid json array object ["a",["b",1,["c",2,3,null,]]]
Per impostare null_if_invalid su true, in modo che l'istruzione restituisca NULL invece di restituire un errore di formato JSON non valido, utilizza l'esempio seguente.
SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('["a",["b",1,["c",2,3,null,]]]',1,true);+---------------------------------+ | json_extract_array_element_text | +---------------------------------+ | NULL | +---------------------------------+
Considera le seguenti istruzioni di esempio. Se la stringa JSON fornita o l’indice è NULL, JSON_EXTRACT_ARRAY_ELEMENT_TEXT restituisce NULL, indipendentemente dal valore di qualsiasi altro parametro.
--Statement where json_string is NULL. SELECT json_extract_array_element_text(NULL, 0)json_extract_array_element_text --------------------------------- NULL--Statement where pos is NULL and json_string is invalid JSON. SELECT json_extract_array_element_text('invalid_json', NULL);json_extract_array_element_text --------------------------------- NULL--Statement where json_string is NULL and null_if_invalid is FALSE. SELECT json_extract_array_element_text(NULL, 0, FALSE);json_extract_array_element_text --------------------------------- NULL
Considera le seguenti istruzioni di esempio. Quando null_if_invalid è TRUE, JSON_EXTRACT_ARRAY_ELEMENT_TEXT restituisce NULL quando json_string è JSON non valido. Se null_if_invalid è FALSE o non è impostato, la funzione restituisce un errore quando json_string non è valido.
--Statement with invalid JSON where null_if_invalid is TRUE. SELECT json_extract_array_element_text('invalid_json', 0, TRUE);json_extract_array_element_text --------------------------------- NULL--Statement with invalid JSON where null_if_invalid is FALSE. SELECT json_extract_array_element_text('invalid_json', 0);ERROR: JSON parsing error
Considera l’esempio seguente, dove json_string è JSON valido e pos fa riferimento a un valore JSON null. In questo caso JSON_EXTRACT_ARRAY_ELEMENT_TEXT restituisce NULL, indipendentemente dal valore di null_if_invalid.
--Statement selecting a null value. SELECT json_extract_array_element_text('[null]', 0); json_extract_array_element_text ---------------------------------- NULL