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, ti consigliamo di analizzare le stringhe JSON utilizzando il valore per ottenere un valore SUPER. Funzione JSON_PARSE Quindi, interroga l'elemento desiderato utilizzando il relativo indice di matrice, utilizzando la sintassi. value[element position]
Per ulteriori informazioni sull'interrogazione degli elementi dell'array nei valori SUPER, vai a. 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 non supera i limiti, viene restituito JSON_EXTRACT_ARRAY_ELEMENT_TEXT. 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 ] )
Argomenti
- json_string
-
Una stringa JSON correttamente formattata.
- pos
-
Un
INTEGER
che rappresenta l'indice dell'elemento array da restituire, utilizzando un indice di array con base zero.
- null_if_invalid
-
(Facoltativo) Un valore
BOOLEAN
che specifica se restituireNULL
se la stringa JSON di input non è valida, invece di restituire un errore. Per restituireNULL
se JSON non è valido, specificatrue
(t
). Per restituire un errore se JSON non è valido, specificarefalse
(f
). Il valore predefinito èfalse
.
Tipo restituito
VARCHAR
-
Una stringa
VARCHAR
che 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 | +---------------------------------+
Considerate le seguenti istruzioni di esempio. Se la stringa JSON o l'indice forniti sono 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
Considerate le seguenti istruzioni di esempio. Quando null_if_invalid è TRUE, JSON_EXTRACT_ARRAY_ELEMENT_TEXT restituisce NULL quando json_string non è un JSON 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
Considerate l'esempio seguente, in cui json_string è JSON valido e pos si riferisce 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