Hay muchas funciones prácticas integradas en Postgresql. A continuación se describe el
entorno de función de combinación y corte : PostgreSQL 9.1.2
CENTOS 5.7 final
a. Función de combinación
1. Concat
a. Introducción a la sintaxis
concat (str "any" [, str "any" [, ...]]) Concatenar todos los argumentos excepto el primero con separadores. El primer parámetro se utiliza como separador. Los argumentos NULL se ignoran.
b. Ejemplo práctico:
postgres = # crear tabla t_kenyon (id int, nombre varchar (10), texto de comentario); CREAR TABLA postgres = # insertar en los valores t_kenyon (1, 'prueba', 'kenyon'), (2, 'solo', 'china'), (3, 'iam', 'lovingU'); INSERT 0 3 postgres = # insertar en los valores de t_kenyon (4, 'prueba', nulo); INSERT 0 1 postgres = # insertar en los valores de t_kenyon (5, null, 'adele'); INSERT 0 1 postgres = # seleccionar * de t_kenyon; id | nombre | comentario ---- + ------ + --------- 1 | prueba | kenyon 2 | solo | china 3 | iam | loveU 4 | prueba | 5 | | adele (5 filas) postgres = # seleccionar concat (id, nombre, comentario) de t_kenyon; 2justchina 3iamlovingU 4test 5adele (5 filas)
c. Explique que la
función concat es puramente una función de empalme y que el empalme de valor nulo se puede ignorar. El valor empalmado no tiene separador. Si necesita un separador, debe usar la siguiente función concat_ws.
2.concat_ws
a. Introducción a la sintaxis
concat_ws (texto sep, str "cualquiera" [, str "cualquiera" [, ...]]) Concatenar todos los argumentos excepto el primero con separadores. El primer parámetro se utiliza como separador. Los argumentos NULL se ignoran.
b. Aplicación práctica
postgres = # seleccione concat_ws (',', id, nombre, comentario) de t_kenyon; concat_ws --------------- 1, prueba, kenyon 2, solo, china 3, iam, lovingU 4, prueba 5, adele (5 filas) postgres = # select concat_ws ('_' , id, nombre, comentario) de t_kenyon; concat_ws --------------- 1_test_kenyon 2_just_china 3_iam_lovingU 4_test 5_adele (5 filas) postgres = # seleccionar concat_ws ('', id, nombre, comentario) de t_kenyon; concat_ws ------------- 1testkenyon 2justchina 3iamlovingU 4test 5adele (5 filas) postgres = # seleccionar concat_ws ('^ _ *', id, nombre, comentario) de t_kenyon; concat_ws ------------------- 1 ^ _ * prueba ^ _ * kenyon 2 ^ _ * solo ^ _ * china 3 ^ _ * iam ^ _ * loveU 4 ^ _ * prueba 5 ^ _ * adele (5 filas)
c. Explique que la función concat_ws tiene más funciones de separación que la función concat. De hecho, es una versión mejorada de concat. Si el separador es "", el resultado será el mismo que concat. El delimitador concat_ws también admite varios caracteres como delimitadores y es posible que se use con más frecuencia a diario.
Dos, función de corte
1. split_part
a. Introducción a la sintaxis
split_part (texto de cadena, texto delimitador, campo int) Dividir cadena en delimitador y devolver el campo dado (contando desde uno)
b. Ejemplo práctico
postgres = # seleccionar split_part ('abc ~ @ ~ def ~ @ ~ ghi', '~ @ ~', 2); split_part ------------ def (1 fila) postgres = # select split_part ('ahora | año | mes', '|', 3); split_part ------------ mes (1 fila)
c. Explique que
esta función es muy efectiva para
tomar el valor en una posición específica por el separador 2. regexp_split_to_table
a. Introducción a la sintaxis
regexp_split_to_table (texto de cadena, texto de patrón [, texto de marcas]) Dividir cadena usando una expresión regular POSIX como delimitador.
b. Ejemplos de uso
postgres = # SELECT regexp_split_to_table ('kenyon, love ,, china,!', ','); regexp_split_to_table ----------------------- kenyon love china ! (5 filas) - Cortar postgres por splitter = # SELECT regexp_split_to_table ('kenyon, china loves', E '\\ s'); regexp_split_to_table ------------------ ----- kenyon, china loves (3 filas) --cut by letter postgres = # SELECT regexp_split_to_table ('kenyon ,, china', E '\\ s *'); regexp_split_to_table --------- -------------- K E n- Y O n- , , C H i n a (13 filas)
3. regexp_split_to_array
a. Introducción a la sintaxis
regexp_split_to_array (texto de cadena, texto de patrón [, texto de marcas]) Dividir cadena usando una expresión regular POSIX como delimitador.
b. Ejemplo práctico
postgres = # SELECT regexp_split_to_array ('kenyon, love ,, china,!', ','); regexp_split_to_array -------------------------- {kenyon, amor, "", china,!} (1 fila) postgres = # SELECT regexp_split_to_array (' kenyon, amor ,, china! ',' s * '); regexp_split_to_array ----------------------------------------------- {k , e, n, y, o, n, ",", l, o, v, e, ",", ",", c, h, i, n, a,!} (1 fila)
c. Explique
que s * en la bandera usada arriba significa dividir todo, y E '\\ s' significa espacio de escape