La Tabla 9.51 muestra los operadores especializados disponibles para los tipos de arreglos. Además de estos, los operadores de comparación habituales que se muestran en la Tabla 9.1 están disponibles para arreglos. Los operadores de comparación 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, y ordenan según la primera diferencia. 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).
Cuadro 9.51. Operadores de matrices
Operador Descripción Ejemplo (s) |
---|
¿La primera matriz contiene la segunda, es decir, cada elemento que aparece en la segunda matriz es igual a algún elemento de la primera matriz? (Los duplicados no se tratan de forma especial, por lo que
|
¿La primera matriz está contenida en la segunda?
|
¿Se superponen las matrices, es decir, tienen elementos en común?
|
Concatena las dos matrices. Concatenar una matriz nula o vacía no es una operación; de lo contrario, las matrices deben tener el mismo número de dimensiones (como se ilustra en el primer ejemplo) o diferir en el número de dimensiones en uno (como se ilustra en el segundo).
|
Concatena un elemento al frente de una matriz (que debe estar vacía o unidimensional).
|
Concatena un elemento al final de una matriz (que debe estar vacía o unidimensional).
|
Consulte la Sección 8.15 para obtener más detalles sobre el comportamiento del operador de matriz. Consulte la Sección 11.2 para obtener más detalles sobre qué operadores admiten operaciones indexadas.
La Tabla 9.52 muestra las funciones disponibles para usar con tipos de arreglos. Consulte la Sección 8.15 para obtener más información y ejemplos del uso de estas funciones.
Cuadro 9.52. Funciones de matriz
Función Descripción Ejemplo (s) |
---|
Agrega un elemento al final de una matriz (igual que el
|
Concatena dos matrices (igual que el
|
Devuelve una representación de texto de las dimensiones de la matriz.
|
Devuelve una matriz llena de copias del valor dado, con dimensiones de las longitudes especificadas por el segundo argumento. El tercer argumento opcional proporciona valores de límite inferior para cada dimensión (que por defecto son todos
|
Devuelve la longitud de la dimensión de matriz solicitada.
|
Devuelve el límite inferior de la dimensión de matriz solicitada.
|
Devuelve el número de dimensiones de la matriz.
|
Devuelve el subíndice de la primera aparición del segundo argumento en la matriz, o
|
Devuelve una matriz de los subíndices de todas las apariciones del segundo argumento en la matriz dada como primer argumento. La matriz debe ser unidimensional. Las comparaciones se realizan usando
|
Antepone un elemento al principio de una matriz (igual que el
|
Elimina todos los elementos iguales al valor dado de la matriz. La matriz debe ser unidimensional. Las comparaciones se realizan usando
|
Reemplaza cada elemento de la matriz igual al segundo argumento con el tercer argumento.
|
Convierte cada elemento de la matriz en su representación de texto y concatena los separados por
|
Devuelve el límite superior de la dimensión de matriz solicitada.
|
Devuelve el número total de elementos de la matriz o 0 si la matriz está vacía.
|
Divide el
|
Expande una matriz en un conjunto de filas. Los elementos de la matriz se leen en orden de almacenamiento.
1 2
foo bar baz quux |
Expande múltiples matrices (posiblemente de diferentes tipos de datos) en un conjunto de filas. Si las matrices no tienen la misma longitud, las más cortas se rellenan con
a | b ---+----- 1 | foo 2 | bar | baz |
Nota
Hay dos diferencias en el comportamiento de
string_to_array
de versiones anteriores a la 9.1 de PostgreSQL. Primero, devolverá una matriz vacía (elemento cero) en lugar deNULL
cuando la cadena de entrada es de longitud cero. En segundo lugar, si la cadena delimitadora esNULL
, la función divide la entrada en caracteres individuales, en lugar de devolverNULL
como antes.
Consulte también la Sección 9.21 sobre la función agregada array_agg
para usar con matrices.
Anterior |
Hasta | próximo |
9.18. Expresiones condicionales | Hogar | 9,20. Funciones y operadores de rango |