Re: Ayuda con query

From: Anthony Sotolongo <asotolongo(at)gmail(dot)com>
To: Maria Antonieta Ramirez <maramirez(at)ulsaneza(dot)edu(dot)mx>, FORO POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda con query
Date: 2017-10-10 17:41:47
Message-ID: 0cd24a18-1204-8c9f-5a05-0ec379400058@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Maria Antonieta, como retornas un record desde hacer el cast de lo
que retornas, algo como:

select * from educaciondistancia.busca_usuarios('blablabla') as (campo1
tipo_dato, campo2 tipo_dato, ....)

donde los campos deben ser de mismo tipo de dato que lo que devuelve la
query que defines dentro de la función

por ejemplo:

CREATE or replace FUNCTION ejemplo_record(character)  RETURNS RECORD AS
$BODY$
DECLARE
REG RECORD;
BEGIN
FOR REG IN (select datname, datdba from pg_database
              Where datname =$1)
loop
return REG;
end loop;
end;
$BODY$
language 'plpgsql';

select * from ejemplo_record('postgres') as (nombre name, dba oid)
--retorna los campos por separado
select ejemplo_record('postgres') --retorna los campos en un record

Saludos

On 10/10/17 14:23, Maria Antonieta Ramirez wrote:
>
>
> Hola,
>
>
> Ya tengo mi funcion de la siguiente manera:
>
>
>  CREATE or replace FUNCTION
> educaciondistancia.busca_usuarios(character)  RETURNS  RECORD AS
> $BODY$
> DECLARE
> REG RECORD;
> BEGIN
> FOR REG IN (Select usuario.*
>    from (Select a.usuario , a.pwd , a.matricula,
> a.iniciosesion,a.ultimoacceso, a.token, a.tipousuario , a.activo
>                 From educaciondistancia.usuarios a
>                Union all
>               Select b.usuario, b.pwd, b.personal, b.iniciosesion,
> b.fechaultimoacceso, b.token, b.tipousuario, b.activo
>                 From educaciondistancia.usuariosadmin b
>               ) usuario
>               Where usuario.usuario =$1)
> loop
> return REG;
> end loop;
> end;
> $BODY$
> language 'plpgsql';
>
>
>
> solo que me muestra mi resultado en un solo renglón , como puedo hacer
> para que me lo muestre separado por campos
>
> ------------------------------------------------------------------------
> *De:* Maria Antonieta Ramirez
> *Enviado:* martes, 10 de octubre de 2017 11:10:56
> *Para:* FORO POSTGRES
> *Asunto:* Ayuda con query
>
> Buen dia, De ante mano muchas gracias a todos por su apoyo.
>
> De las opciones que me comentarón la que me resulto es la siguiente ya
> la complete con los campos que necesito.
>
>
> Select usuario.*
>    from (Select a.usuario , a.pwd , a.matricula,
> a.iniciosesion,a.ultimoacceso, a.token, a.tipousuario , a.activo
>                 From educaciondistancia.usuarios a
>                Union all
>               Select b.usuario, b.pwd, b.personal, b.iniciosesion,
> b.fechaultimoacceso, b.token, b.tipousuario,  b.activo
>                 From educaciondistancia.usuariosadmin b
>               ) usuario
> Where usuario.usuario = 'aramirez'
>
>
>
> - Ahora tengo la siguiente duda:
> A esta consulta tengo que agregar un valor, ambas tablas tienen el
> campo "tipousuario"  y mi valor es 1 para mi tabla de usuarios y 2
> para mi tabla de usuariosadmin; Yo quiero hacer esta consulta de forma
> que pueda ingresarle los siguientes valores a buscar : usuario y
> tipousuario
>
> Puedo hacer una vista o tendria que meterlo a una funcion?
> y si tienen un ejemplo se los agradeceria mucho.
>
> Gracias.
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Maria Antonieta Ramirez 2017-10-10 18:07:04 Re: Ayuda con query
Previous Message Maria Antonieta Ramirez 2017-10-10 17:23:11 Re: Ayuda con query