SELECT Nombres ???

08/06/2006 - 06:19 por Pablo Rodríguez | Informe spam
Hola,
tengo 2 tablas,

tblUno (Id, Campo, Campo2)
tblDos(Id, IdUno, Nombre)

necesito una función que me devuelva por ejemplo:

"Nombre1, Nombre2, Nombre3"

siempre que se cumpla que tblDos.IdUno = tblUno.Id

Se entiende??

Saludos!
 

Leer las respuestas

#1 qwalgrande
08/06/2006 - 08:58 | Informe spam
Hola.

Mira a ver si esto te da una pista. Ojo, has de tener en cuenta que si tu
tabla tiene muchos registros es posible que la variable de 8000 caracteres
se llene. Si este fuera el caso, explícanos un poco más en detalle para qué
necesitas la función porque esto que te propongo está bien para unos pocos
valores.

create function uf_CadenaNombres (@pIdUno int) returns varchar(8000)
begin
declare @ret varchar(8000)
select @ret = ''
if @pIdUno = -1
select @ret = @ret + tblDos.Nombre + ', '
from tblUno inner join tblDos on tblDos.IdUno = tblUno.Id
else--Si me han pasado un valor @pIdUno y solo quiero estos en particular
select @ret = @ret + tblDos.Nombre + ', '
from tblDos where tblDos.IdUno = @pIdUno

if len(@ret) > 0
select @ret = left(rtrim(@ret), len(rtrim(@ret)) -1)

return @ret

end

Si hay algún error en la sintaxis, me disculpas. Si hay algo que no se
entienda, me comentas.

Alberto López Grande (qwalgrande)


"Pablo Rodríguez" escribió en el mensaje
news:
Hola,
tengo 2 tablas,

tblUno (Id, Campo, Campo2)
tblDos(Id, IdUno, Nombre)

necesito una función que me devuelva por ejemplo:

"Nombre1, Nombre2, Nombre3"

siempre que se cumpla que tblDos.IdUno = tblUno.Id

Se entiende??

Saludos!

Preguntas similares