En este post te mostraré cómo usar la función replace
de PostgreSQL, misma que funciona para remplazar parte de un texto por otro, muy útil para cuando queremos modificar parte del texto de una columna en una consulta.
La función replace toma 3 argumentos que son, en orden:
Esta función puede ser usada para actualizar una tabla, por ejemplo, algo así:
update tabla set columna = replace(columna, búsqueda, replace);
Veamos con un ejemplo.
Tengo una tabla con fechas como cadena, pero las fechas tienen la letra T
para separar la fecha de la hora. Así:
select fecha_terminacion from bultos_de_empleados;
fecha_terminacion
---------------------
2020-03-05T22:37:26
2020-03-09T23:33:48
2020-03-09T23:33:52
2020-03-11T00:08:34
2020-03-13T13:20:20
2020-03-13T13:23:53
2020-03-05T22:30:12
2020-03-05T22:30:15
2020-03-05T22:30:17
2020-03-05T22:30:19
2020-03-05T22:30:21
(11 rows)
Lo que quiero remplazar es esa T
por un espacio en blanco, momento de usar la función replace en psql. Para ello ejecuto la siguiente consulta:
update bultos_de_empleados set fecha_terminacion = replace(fecha_terminacion, 'T', ' ');
Ahora las fechas son:
select fecha_terminacion from bultos_de_empleados;
fecha_terminacion
---------------------
2020-03-05 22:37:26
2020-03-09 23:33:48
2020-03-09 23:33:52
2020-03-11 00:08:34
2020-03-13 13:20:20
2020-03-13 13:23:53
2020-03-05 22:30:12
2020-03-05 22:30:15
2020-03-05 22:30:17
2020-03-05 22:30:19
2020-03-05 22:30:21
(11 rows)
Por cierto, es importante notar que en este caso el remplazo es global, es decir, si hubiera más letras T
en esa columna, todas se habrían remplazado.
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…
Esta web usa cookies.
Ver comentarios
Hola, buen día.
Tengo el siguiente caso y no puedo resolverlo.
Si yo tengo el nombre de una persona "Manzo Alfredo Daniel". Y, deseo reemplazar el primer espacio en blanco de la cadena con una "," (por ejemplo). Si utilizo lo siguiente:
"Update Tabla1 set PersApeNomb = replace(PersApeNomb, ' ', ',') where Id=1025;"
Eso me va a reemplazar todos los espacios con la coma.
De qué forma puedo reemplazar la primera ocurrencia o espacio?
Se puede en el segundo parámetro de la función hacer algo como para "ataje" solamente ese espacio en blanco y lo cambie!!?
Muy buen sitio.
Un cordial saludo
Tal vez algo como lo siguiente: https://stackoverflow.com/questions/17002782/how-to-replace-the-first-occurrence-of-character-e-in-a-string-with-s-in-ora
O puede hacerlo desde algún lenguaje de programación