Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Funzioni e Operatori > Funzioni ed operatori per array
PrecedenteEspressioni condizionaliFunzioni aggregateSuccessivo

9.17. Funzioni ed operatori per array

La Tabella 9.40, «Operatori per array» mostra gli operatori disponibili per i tipi array.

Tabella 9.40. Operatori per array

OperatoreDescrizioneEsempioRisultato
= ugualeARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3]t
<> non ugualeARRAY[1,2,3] <> ARRAY[1,2,4]t
< minore diARRAY[1,2,3] < ARRAY[1,2,4]t
> maggiore diARRAY[1,4,3] > ARRAY[1,2,4]t
<= minore di o ugualeARRAY[1,2,3] <= ARRAY[1,2,3]t
>= maggiore di o ugualeARRAY[1,4,3] >= ARRAY[1,4,3]t
@> contieneARRAY[1,4,3] @> ARRAY[3,1]t
<@ è contenuto daARRAY[2,7] <@ ARRAY[1,7,4,2,6]t
&& si sovvrappone (ha elementi in comune)ARRAY[1,4,3] && ARRAY[2,1]t
|| concatenazione array-to-arrayARRAY[1,2,3] || ARRAY[4,5,6]{1,2,3,4,5,6}
|| concatenazione array-to-arrayARRAY[1,2,3] || ARRAY[[4,5,6],[7,8,9]]{{1,2,3},{4,5,6},{7,8,9}}
|| concatenazione element-to-array 3 || ARRAY[4,5,6]{3,4,5,6}
|| concatenazione array-to-elementARRAY[4,5,6] || 7{4,5,6,7}

I confronti tra gli array operano sul contenuto degli array elemento-per-elemento, usando la funzione di confronto B-Tree predefinita per il tipo dato dell'elemento. Negli array multidimensionali gli elementi sono esaminati nell'ordine row-major (l'ultimo subscritto varia più rapidamente). Se il contenuto di due array è uguale ma la dimensionalità è differente, la prima differenza nell'informazione di dimensionalità determina il tipo di ordinamento. (Questa è una modifica rispetto alle versioni di PostgreSQL™ precedenti alla 8.2: le versioni più vecchie affermavano che due array con lo stesso contenuto erano uguali, anche se il numero di dimensioni o l'estensione dei subscritti erano diversi).

Vedere Sezione 8.14, «Array» per ulteriori dettagli circa il comportamento degli operatori per array.

La Tabella 9.41, «Funzioni per array» mostra le funzioni disponibili per l'uso con i tipi array. Vedere Sezione 8.14, «Array» per ulteriori discussioni ed esempi sull'uso di queste funzioni.

Tabella 9.41. Funzioni per array

FunzioneTipo restituitoDescrizioneEsempioRisultato
array_append(anyarray, anyelement) anyarrayappende un elemento alla fine di un arrayarray_append(ARRAY[1,2], 3){1,2,3}
array_cat(anyarray, anyarray) anyarrayconcatena due arrayarray_cat(ARRAY[1,2,3], ARRAY[4,5]){1,2,3,4,5}
array_ndims(anyarray) intrestituisce il numero di dimensioni dell'arrayarray_ndims(ARRAY[[1,2,3], [4,5,6]])2
array_dims(anyarray) textrestituisce una rappresentazione in testo delle dimensioni di un arrayarray_dims(ARRAY[[1,2,3], [4,5,6]])[1:2][1:3]
array_fill(anyelement, int[], [, int[]]) anyarray restituisce un array inizializzato con valori e dimensioni forniti, opzionalmente con limiti inferiori diversi da 1array_fill(7, ARRAY[3], ARRAY[2])[2:4]={7,7,7}
array_length(anyarray, int) intrestituisce la lunghezza della dimensione dell'array richiestoarray_length(array[1,2,3], 1)3
array_lower(anyarray, int) intrestituisce il limite inferiore della dimensione dell'array richiestoarray_lower('[0:2]={1,2,3}'::int[], 1)0
array_prepend(anyelement, anyarray) anyarrayappende un elemento all'inizio di un arrayarray_prepend(1, ARRAY[2,3]){1,2,3}
array_to_string(anyarray, text [, text]) text concatena elementi di array usando i delimitatori forniti e opzionalmente stringe null array_to_string(ARRAY[1, 2, 3, NULL, 5], ',', '*')1,2,3,*,5
array_upper(anyarray, int) intrestituisce il limite superiore della dimensione dell'array richiestoarray_upper(ARRAY[1,2,3,4], 1)4
string_to_array(text, text [, text]) text[] scinde la stringa in elementi di array usando i delimitatori forniti e opzionalmente stringhe nullstring_to_array('xx~^~yy~^~zz', '~^~', 'yy'){xx,NULL,zz}
unnest(anyarray) setof anyelementespande un array in un insieme di righeunnest(ARRAY[1,2])1

2

(2 rows)

In string_to_array, se il parametro delimitatore è NULL, ogni carattere nella stringa di input diventerà un elemento separato nell'array risultante. Se il delimitatore è una stringa vuota, allora l'intera stringa di input viene restituita come un array da un elemento. Altrimenti la stringa di input viene divisa ad ogni occorrenza della stringa delimitatrice.

In string_to_array, se il parametro null-string è omesso o NULL, nessuna delle sottostringhe dell'input sarà sostituita da NULL. In array_to_string, se il parametro null-string è omesso o NULL, ogni elemento null nell'array è semplicemente saltato e non rappresentato nella stringa di output.

[Nota]

Nota

Ci sono due differenze nel comportamento di string_to_array dalle versioni precedenti la 9.1 di PostgreSQL™. Primo, essa restituirà un array vuoto (zero elementi) piuttosto che NULL, quando la stringa di input è di lunghezza zero. Secondo, se la stringa delimitatrice è NULL, la funzione divide l'input in caratteri individuali, piuttosto che ritornare NULL come prima.

Vedere anche Sezione 9.18, «Funzioni aggregate» circa la funzione aggregata array_agg per l'uso con gli array.

Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Funzioni e Operatori > Funzioni ed operatori per array
PrecedenteEspressioni condizionaliFunzioni aggregateSuccessivo