0% encontró este documento útil (0 votos)
9 vistas4 páginas

Operadores y funciones de matriz en SQL

El documento describe los operadores y funciones disponibles para trabajar con tipos de matriz en PostgreSQL, incluyendo comparaciones, concatenaciones y manipulación de elementos. Se presentan ejemplos y resultados para cada operador y función, así como detalles sobre el comportamiento de las comparaciones en matrices multidimensionales. Además, se menciona que las funciones como array_append, array_cat y string_to_array permiten manipular y transformar matrices de diversas maneras.

Cargado por

abantmov
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
9 vistas4 páginas

Operadores y funciones de matriz en SQL

El documento describe los operadores y funciones disponibles para trabajar con tipos de matriz en PostgreSQL, incluyendo comparaciones, concatenaciones y manipulación de elementos. Se presentan ejemplos y resultados para cada operador y función, así como detalles sobre el comportamiento de las comparaciones en matrices multidimensionales. Además, se menciona que las funciones como array_append, array_cat y string_to_array permiten manipular y transformar matrices de diversas maneras.

Cargado por

abantmov
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

9.18.

Funciones y operadores de matriz


La Tabla 9-42 muestra los operadores disponibles para los tipos de matriz.

Tabla 9-42. Operadores de matriz

Operador Descripción Ejemplo Resultado

ARRAY[1.1,2.1,3.1]::int[] =
= igual ARRAY[1,2,3]
t

<> no es igual ARRAY[1,2,3] <> ARRAY[1,2,4] t

< menos que ARRAY[1,2,3] < ARRAY[1,2,4] t

> mas grande que MATRIZ[1,4,3] > MATRIZ[1,2,4] t

<= menor o igual ARRAY[1,2,3] <= ARRAY[1,2,3] t

>= mayor que o igual ARRAY[1,4,3] >= ARRAY[1,4,3] t

@> contiene ARRAY[1,4,3] @> ARRAY[3,1] t

<@ está contenido por ARRAY[2,7] <@ ARRAY[1,7,4,2,6] t

&&
superponerse (tener elementos en MATRIZ[1,4,3] && MATRIZ[2,1] t
común)
|| concatenación de matriz a matriz MATRIZ[1,2,3] || MATRIZ[4,5,6] {1,2,3,4,5,6}

MATRIZ[1,2,3] || MATRIZ[[4,5,6],
|| concatenación de matriz a matriz [7,8,9]]
{{1,2,3},{4,5,6},{7,8,9}}

|| concatenación de elemento a matriz 3 || MATRIZ[4,5,6] {3,4,5,6}


Operador Descripción Ejemplo Resultado

|| concatenación de matriz a elemento ARRAY[4,5,6] || 7 {4,5,6,7}


Las comparaciones de matrices comparan el contenido de la matriz elemento por elemento, utilizando la función de
comparación de árbol B predeterminada para el tipo de datos del elemento. En matrices multidimensionales, los
elementos se visitan en orden de fila principal (el último subíndice varía más rápidamente). Si el contenido de dos
matrices es igual pero la dimensionalidad es diferente, la primera diferencia en la información de dimensionalidad
determina el orden de clasificación. (Este es un cambio con respecto a las versiones de PostgreSQL anteriores a la
8.2: las versiones anteriores afirmarían que dos matrices con el mismo contenido eran iguales, incluso si el número
de dimensiones o rangos de subíndices fueran diferentes).

Consulte la Sección 8.15 para obtener más detalles sobre el comportamiento del operador de matriz.

La Tabla 9-43 muestra las funciones disponibles para usar con tipos de matriz. Consulte la Sección 8.15 para
obtener más información y ejemplos del uso de estas funciones.

Tabla 9-43. Funciones de matriz

Función Tipo de devolución Descripción Ejemplo Resultado

array_append( cualquier
cualquier matriz
agregar un elemento al matriz_append(ARRAY[1,2
{1,2,3}
matriz , cualquier elemento ) final de una matriz ], 3)

array_cat( cualquier array_cat(ARRAY[1,2,3],


matriz , cualquier matriz )
cualquier matriz concatenar dos matrices ARRAY[4,5])
{1,2,3,4,5}

array_ndims( cualquier
En t
devuelve el número de array_ndims(ARRAY[[1,2,
2
matriz ) dimensiones de la matriz 3], [4,5,6]])
array_dims( cualquier texto devuelve una array_dims(ARRAY[[1,2,3 [1:2][1:3]
Función Tipo de devolución Descripción Ejemplo Resultado

representación de texto
matriz ) de las dimensiones de la ], [4,5,6]])
matriz
devuelve una matriz
inicializada con el valor y
array_fill( cualquier las dimensiones
elemento , int[] , array_fill(7, ARRAY[3], [2:4]={7,7,
cualquier matriz proporcionados, ARRAY[2]) 7}
[ , int[] ]) opcionalmente con
límites inferiores
distintos de 1
devuelve la longitud de la
array_length( cualquier longitud_matriz(matriz[
matriz , int )
En t dimensión de la matriz 1,2,3], 1)
3
solicitada
devuelve el límite
array_lower( cualquier array_lower('[0:2]={1,2
matriz , int )
En t inferior de la dimensión ,3}'::int[], 1)
0
de la matriz solicitada
array_prepend( cualquier
cualquier matriz
agregar un elemento al array_prepend(1,
{1,2,3}
elemento , cualquier matriz ) comienzo de una matriz ARRAY[2,3])

concatena elementos de
array_to_string( cualquier
la matriz utilizando el array_to_string(ARRAY[1
matriz , texto [ , texto ])
texto delimitador , 2, 3, NULL, 5], ',', 1,2,3,*,5
proporcionado y una '*')
cadena nula opcional
array_upper( cualquier En t devuelve el límite matriz_superior(ARRAY[1 4
matriz , int ) ,8,3,7], 1)
Función Tipo de devolución Descripción Ejemplo Resultado

superior de la dimensión
de la matriz solicitada
divide la cadena en
string_to_array( texto , text
elementos de la matriz
string_to_array('xx~^~y {xx,NULL,zz
o [ , texto ])
texto[] utilizando el delimitador y~^~zz', '~^~', 'yy') }
proporcionado y una
cadena nula opcional
conjunto de 1
unnest( cualquier matriz ) cualquier
expandir una matriz a un no anidado(ARRAY[1,2]) 2
elemento conjunto de filas
(2 filas)
En string_to_array, si el parámetro delimitador es NULL, cada carácter de la cadena de entrada se convertirá en
un elemento separado en la matriz resultante. Si el delimitador es una cadena vacía, entonces toda la cadena de
entrada se devuelve como una matriz de un elemento. De lo contrario, la cadena de entrada se divide cada vez que
aparece la cadena delimitadora.

En string_to_array, si se omite el parámetro de cadena nula o es NULL, ninguna de las subcadenas de la entrada
será reemplazada por NULL. En array_to_string, si se omite el parámetro de cadena nula o es NULL, cualquier
elemento nulo en la matriz simplemente se omite y no se representa en la cadena de salida.

Nota: Existen dos diferencias en el comportamiento de las string_to_arrayversiones anteriores a la 9.1


de PostgreSQL . Primero, devolverá una matriz vacía (elemento cero) en lugar de NULL cuando la cadena de entrada
tenga una longitud cero. En segundo lugar, si la cadena delimitadora es NULL, la función divide la entrada en
caracteres individuales, en lugar de devolver NULL como antes.

También podría gustarte