UPDATE con subquery en PostgreSQL

Bueno en el post anterior tuve la necesidad de devolver el campo apellidos en 2 campos: apellido paterno y apellido materno, pero ahora necesito hacer un UPDATE sobre la tabla persona que me permita insertar cada uno de los apellidos en sus campos respectivos.

Antes de eso quitare mas de un espacio entre cada apellido para el caso que el usuario del sistema haya ingresado:

APELLIDO1..APELLIDO2

UPDATE persona SET pers_apellidos = replace(pers_apellidos, ' ', ' ');

Ahora quitare los espacios al inicio y al final

UPDATE persona SET pers_apellidos = trim(pers_apellidos);

Listo. Ahora solo queda insertar los apellidos en cada campo. Aquí el UPDATE es usando un subquery. Para mi caso esta subquery son todos las personas que aun los campos apellido paterno y materno están NULL

UPDATE persona SET pers_apellido_paterno=subquery.apellido_paterno,pers_apellido_materno=subquery.apellido_materno FROM (SELECT pers_id,split_part(pers_apellidos,' ',1) AS apellido_paterno, split_part(pers_apellidos,' ',2) AS apellido_materno FROM persona WHERE pers_apellido_paterno IS NULL AND pers_apellido_materno IS NULL) AS subquery WHERE persona.pers_id=subquery.pers_id;

Listo!! ahora si next

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.