Bases de Datos > SQL Server

 Concatenar Un Campo De Varias Filas

<< < (3/3)

trentia:
Hay varias maneras de hacerlo, pero la más fácil puede ser create una función de usuario dentro del SQL.

En esta función le pasamos por ejemplo un identificador y mediante cursores vamos metiendo los valors que vengan en una variable de tipo string.

La función de usuario que devuelva este string y desde tu SQL realizas la llamada a la función.

Por ejemplo:

SELECT dbo.MiFuncionUsuario(12) ....

create function MiFuncionUsuario ...

Saludos

Javier Tirado
IT Consultor
TRENTIA Consulting
BUSINESS INTELLIGENCE

lencho:
eso lo tuve que resolver desde Visual Basic, con otra consulta, pero me gustaria poder hacerlo en SQL, pero todavia no he podido, seguire intentando.

BYTE.

Soultaker:
Eso tambien lo podrias hacer, creandote un STORE PROCEDURE, ahora no tengo instalado el SQL, dejame que lo instalo y lo tratare de hacer.

Saludos

 :comp:

lencho:
Me cree este procedure con un cursor dentro, que me soluciono el problema, ya era hora que pudiera hacerlo.

--- Código: Text ---CREATE PROCEDURE  Concatenar  @idProd int,  @salida varchar(100) outputasDeclare @Descripcion varchar(20) Declare MiCursor Cursor ForSELECT Modelo.Descripcion from Modelo, ModeloProducto where Modelo.idModelo = ModeloProducto.idModelo and ModeloProducto.idProducto = @idProd Open MiCursorFetch Next From MiCursorInto @Descripcionif @@Fetch_status = 0begin  set @salida = ' '  Declare @contador int  set @contador = 1  While @@Fetch_status = 0  Begin    if @contador = 1       set @salida = @Descripcion    else      set @salida = @salida + ', ' + @Descripcion        set @contador = @contador +1    Fetch Next From MiCursor    Into @Descripcion  endendelsebegin  Close MiCursor  Deallocate MiCursor  return(1)endClose MiCursorDeallocate MiCursorGO  Yo no sabia esta parte de SQL (lo de transact, cursores, etc), mas bien y estoy aprendiendo  :D  :D  :D

BYTE.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa