Tuesday, May 20, 2008

RE: [pgsql-es-ayuda] Fwd: Saludos desde Mexico

-----Mensaje original-----
De: Miguel Rodríguez Penabad [mailto:penabad@gmail.com]
Enviado el: Lunes, 19 de Mayo de 2008 06:16 p.m.
Para: Pavel Rodriguez de la Torre
CC: pgsql-es-ayuda@postgresql.org
Asunto: Re: [pgsql-es-ayuda] Fwd: Saludos desde Mexico


El día 19 de mayo de 2008 16:41, Pavel Rodriguez de la Torre
<prodriguezdlt@yahoo.com> escribió:
> Buen dia, este mail es sobre una duda en postgre, ojala me puedan

El nombre es "Postgres" o "PostgreSQL", no "postgre" ;)

> ayudar....tengo una base de datos en la cual tengo una tabla donde
almaceno
> los nombres de otras tablas que utilizo, el problema es que no logro hacer
> un select anidado donde el nombre de la tabla que voy a utilizar provenga
> del select de la tabla donde guardo los nombres de tablas.....la sentencia
> que estoy tratando de utilizar es la siguiente...y por mas que lo he
> intentado solo me regresa el nombre de la tabla pero no la puedo utilizar
> como nombre en el select from....
>
> SELECT * FROM (SELECT nombtabla from __aaatipos WHERE idt = 1) AS
> nomb_tabla;
>
> tambien probe con
>
> SELECT nomb_tabla.* FROM (SELECT nombtabla from __aaatipos WHERE idt = 1)
AS
> nomb_tabla;
>
>
> pero las dos opciones me regresan el nombre de la tabla que necesito pero
no
> hacen el select * de esa tabla
>
> porfaa ojala me pudieran hechar la mano...Gracias de antemano
>

A ver si entiendo:
Si (SELECT nombtabla from __aaatipos WHERE idt = 1) es "tabla1",
quieres hacer un
Select * from tabla1??

Si es así, no es posible hacerlo en SQL. Al menos hasta donde yo sé.
Podrías hacerlo en PL/pgSQL utilizando cursores y SQL dinámico, pero
(y es opinión personal) creo que tienes un problema de diseño de la
base de datos
o de la aplicación de acceso.

Saludos

--
Miguel Rodríguez Penabad
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?

http://archives.postgresql.org/pgsql-es-ayuda

**************************************

Depende de que lenguaje de programacion estes usando :

Yo lo pondria asi :

cTabla_recuperada = SELECT nombtabla from __aaatipos WHERE idt = 1

SELECT * FROM &cTabla AS &cTabla;


Lo mas recomendable en todo caso podria ser pasar el nombre de la tabla a
una variable y de alli evaluar la variable.

Miguel Canchas
--
TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo agradecerán

No comments: