/*
select sp_separar_nombres('Jose Francisco Rodriguez Chavez', 1);
select sp_separar_nombres('Jose Francisco Rodriguez Chavez', 2);
select sp_separar_nombres('Jose Francisco Rodriguez Chavez', 3);
select sp_separar_nombres('Jose Francisco Rodriguez Chavez', 4);
select sp_separar_nombres('Helen Vilchez', 1);
select sp_separar_nombres('Helen Vilchez', 2);
select sp_separar_nombres('Helen Vilchez', 3);
select sp_separar_nombres('Helen Vilchez', 4);
select sp_separar_nombres('Katherine Diaz Tabora', 1);
select sp_separar_nombres('Katherine Diaz Tabora', 2);
select sp_separar_nombres('Katherine Diaz Tabora', 3);
select sp_separar_nombres('Katherine Diaz Tabora', 4);
*/
create or replace function sp_separar_nombres(completo varchar, parcial int)
returns varchar
as $$
declare
v_primer_nom varchar = '';
v_segundo_nom varchar = '';
v_primer_apel varchar = '';
v_segundo_apel varchar = '';
begin
v_primer_nom = substring(completo, 0, position(' ' in completo));
v_segundo_nom = trim(replace(completo, v_primer_nom, ''));
v_segundo_nom = substring(v_segundo_nom, 0, position(' ' in v_segundo_nom));
v_primer_apel = trim(replace(completo, v_primer_nom, ''));
v_primer_apel = trim(replace(v_primer_apel, v_segundo_nom, ''));
v_primer_apel = substring(v_primer_apel, 0, position(' ' in v_primer_apel));
v_segundo_apel = trim(replace(completo, v_primer_nom, ''));
v_segundo_apel = trim(replace(v_segundo_apel, v_segundo_nom, ''));
v_segundo_apel = trim(replace(v_segundo_apel, v_primer_apel, ''));
v_segundo_apel = substring(v_segundo_apel, 0, length(v_segundo_apel) + 1);
if (v_segundo_nom = '' and v_primer_apel = '') then
v_primer_apel = v_segundo_apel;
v_segundo_apel = '';
end if;
if (v_segundo_nom <> '' and v_primer_apel = '') then
v_primer_apel = v_segundo_nom;
v_segundo_nom = '';
end if;
if (parcial = 1) then
return v_primer_nom;
end if;
if (parcial = 2) then
return v_segundo_nom;
end if;
if (parcial = 3) then
return v_primer_apel;
end if;
if (parcial = 4) then
return v_segundo_apel;
end if;
if (parcial < 1 and parcial > 4) then
return '';
end if;
end;
$$ language plpgsql;
No hay comentarios:
Publicar un comentario