PostgreSQL corta y combina funciones de campo

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

Supongo que te gusta

Origin blog.csdn.net/londa/article/details/109282692
Recomendado
Clasificación