Postgresql proporciona varios métodos para manipular las matrices. Una operación común es combinar dos matrices de igual longitud en pares de elementos. Este artículo explora diferentes enfoques para lograr esta tarea, considerando las versiones de PostgreSQL y los casos de uso específicos.
postgresql 9.5 o postgresql 9.5 introducir introducción (aglomíne de la expresión), lo que te permite la expresión de más tarde), lo que te permite la expresión de más tarde). múltiples matrices en una matriz de dimensión superior. Esta característica simplifica las tareas de combinación de matriz, eliminando la necesidad de funciones agregadas personalizadas.
seleccione Array_agg (Array [A, B]) como AB De unnest ('{a, b, c}' :: text []) como a, Desde.
SELECT array_agg(ARRAY[a, b]) AS ab FROM unnest('{a,b,c}'::text[]) AS a, unnest('{d,e,f}'::text[]) AS b;
estremeciendo matrices para salida multidimensional para casos en los que necesita combinar matrices en una matriz multidimensional, es necesario una función de agregado personalizado. Devuelve set de cualquier lenguaje de ARRAY SQL como $ func $ Seleccione Array [Array [A, B]] De unnest ($ 1) como unnest1 (a, b); $ func $;
seleccione Array_agg_Mult (Array [Array [A, B]]) como AB De unnest ('{{a, b, c}' :: text []) como a, unnest ('{d, e, f}' :: text []) como b;
SELECT ARRAY[a, b] AS ab FROM unnest('{a,b,c}'::text[], '{d,e,f}'::text[]) AS tmp(a, b);
crea o reemplaza o reemplazan la función (&&&], todos los que se produce un enfoque generalizado para encerrar a los Arrays de cualquier tipo:
[&] crea o reemplaza o reemplazan la función de la función (&&]. Devuelve set de cualquier lenguaje de ARRAY SQL como $ func $ Seleccione Array_agg_Mult (Array [Array [A, B]]) De Unnest ($ 1) como Unnest1 (A, B) Únase a Unnest ($ 2) como unnest2 (a, b) En verdad; $ func $;CREATE OR REPLACE FUNCTION array_agg_mult(anyarray) RETURNS SETOF anyarray LANGUAGE SQL AS $func$ SELECT ARRAY[ARRAY[a, b]] FROM unnest($1) AS unnest1(a, b); $func$;escenarios de uso
CREATE OR REPLACE FUNCTION array_agg_mult(anyarray) RETURNS SETOF anyarray LANGUAGE SQL AS $func$ SELECT ARRAY[ARRAY[a, b]] FROM unnest($1) AS unnest1(a, b); $func$;Los ejemplos presentados en este artículo muestran diferentes escenarios para combinar matrices:
Simple Zipping:
CREATE OR REPLACE FUNCTION zip(anyarray, anyarray) RETURNS SETOF anyarray LANGUAGE SQL AS $func$ SELECT array_agg_mult(ARRAY[ARRAY[a, b]]) FROM unnest($1) AS unnest1(a, b) JOIN unnest($2) AS unnest2(a, b) ON true; $func$;
combinando matrices en una matriz de 2-dimensional.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3