SQL - Concatenar

 
Vista:

Concatenar

Publicado por antonio (1 intervención) el 16/08/2005 12:30:39

Hola, me gustaria saber como puedo hacer una consulta que genere en una columna varios valores de otra columna concatenados.

Ejemplo

CODIGO DOCUMENTO
1 Doc1
1 Doc2
2 Doc3
2 Doc4
2 Doc5


Resutado de la consulta que deseo:

CODIGO DOCUMENTO
1 Doc1Doc2
2 Doc3Doc4Doc5
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Concatenar

Publicado por christian (38 intervenciones) el 18/08/2005 16:59:38
Es facil

Select a.doc1 +a.doc2 as Codigo Documento, b.doc3 + b.doc4 + b.doc5
from 1 a, 2 b

Saludos
Christian
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Concatenar

Publicado por Liliana (426 intervenciones) el 18/08/2005 18:52:00
Hola Antonio,
Asumo que no sabés qué cantidad de documentos tendrás por cada código.
Espero que te sirva y que no tengas demasiada información, no encontré mejor manera de hacerlo:

CREATE TABLE test1
(orden smallint not null, doc char(20))

INSERT test1 SELECT 1, 'Doc1'
INSERT test1 SELECT 1, 'Doc2'
INSERT test1 SELECT 1, 'Doc3'

INSERT test1 SELECT 2, 'Doc4'
INSERT test1 SELECT 2, 'Doc5'

CREATE INDEX test1 ON test1 (orden)

DECLARE @orden smallint
DECLARE @maxorden smallint
SELECT @orden = MIN(orden) FROM test1
SELECT @maxorden = MAX(orden) FROM test1

DECLARE @NAME VARCHAR(8000)

WHILE @orden <= @maxorden
BEGIN
SET @NAME = ''
SELECT @name = @NAME + rtrim(ltrim(doc)) + '; ' FROM test1 where orden = @orden
SELECT @orden, @name
SELECT @orden = MIN(orden) FROM test1 WHERE orden > @orden
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar