Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Como juntar dos valores de dos campos diferentes con una consulta

Estas en el tema de Como juntar dos valores de dos campos diferentes con una consulta en el foro de SQL Server en Foros del Web. Hola, digamos que hago un select de una tabla, y como resultado me da dos registros. Por ejemplo, si hago el select a los nombres ...
  #1 (permalink)  
Antiguo 03/11/2013, 16:55
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 1
Pregunta Como juntar dos valores de dos campos diferentes con una consulta

Hola, digamos que hago un select de una tabla, y como resultado me da dos registros. Por ejemplo, si hago el select a los nombres de la tabla de alumnos, y me trae a dos personas (por ejemplo a mario y jose) , ¿como hago para que al momento de que me muestre los datos, me muestre en un solo campo "mario jose"?
Se que esto no tiene sentido, pero es para motivos de aprendizaje. Gracias

Última edición por gnzsoloyo; 03/11/2013 a las 17:22
  #2 (permalink)  
Antiguo 03/11/2013, 18:11
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como juntar dos valores de dos campos diferentes con una consulta

puedes hacerlo de muchas maneras lo mas comun es usar coalesce para obtener esto, te dejo un ejemplo:

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. dato VARCHAR(20)
  4. )
  5.  
  6. INSERT INTO #temp VALUES ('yo')
  7. INSERT INTO #temp VALUES ('tu')
  8. INSERT INTO #temp VALUES ('el')
  9.  
  10. DECLARE @variable VARCHAR(MAX)
  11.  
  12. SELECT @variable=COALESCE(@variable + ' ', '') + dato FROM #temp
  13. SELECT @variable AS campo

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 03/11/2013, 18:25
 
Fecha de Ingreso: julio-2013
Mensajes: 18
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Como juntar dos valores de dos campos diferentes con una consulta

Me gustaría algo sin tener que modificar la base de datos, sin crear otras tablas. Disculpas.
  #4 (permalink)  
Antiguo 03/11/2013, 20:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Como juntar dos valores de dos campos diferentes con una consulta

No está modificando ninguna tabla, simplemente está creando una para mostrarte cómo funciona el COALESCE()...
¿Por qué no intentas la idea, y luego nos dices si no es exactamente lo que quieres?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 03/11/2013, 21:19
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como juntar dos valores de dos campos diferentes con una consulta

Cita:
Iniciado por Soraxs Ver Mensaje
Me gustaría algo sin tener que modificar la base de datos, sin crear otras tablas. Disculpas.
A ver no tengo tus datos, como te enseño como funciona el coalesce? podria haberte pegado un ejemplo de internet pero decidi crear uno yo mismo......para probar lo que te pase sustituye #temp por tu tabla y listo.....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 04/11/2013, 01:37
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Como juntar dos valores de dos campos diferentes con una consulta

Tengo una advertencia: yo he utilizado muchas veces este truco y solamente en este mes descubrí que tiene un bug cuando el conjunto esta ordenado por una expresión compuesta. Por ejemplo:
Código SQL:
Ver original
  1. DECLARE @variable VARCHAR(MAX);
  2. SELECT @variable=COALESCE(@variable + ' ', '') + dato FROM #temp ORDER BY dato+'';
  3. SELECT @variable AS campo;
(Con Order By dato funciona perfectamente y afortunadamente todos nuestros códigos en la producción estan ordenados por columnas y no por expresiones)
Según Microsoft este metodo no esta apoyado por ellos
y debemos utilizar el XML:
Código SQL:
Ver original
  1. DECLARE @variable VARCHAR(MAX);
  2. SELECT  @variable=(SELECT COALESCE(@variable,'')+' '+dato
  3.             FROM     #temp
  4.             ORDER BY dato+''
  5.             FOR XML PATH, TYPE).VALUE('.[1]','Varchar(Max)');
  6. SELECT @variable AS campo;
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog

Última edición por GeriReshef; 04/11/2013 a las 01:44
  #7 (permalink)  
Antiguo 04/11/2013, 08:34
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como juntar dos valores de dos campos diferentes con una consulta

Cita:
Iniciado por GeriReshef Ver Mensaje
Tengo una advertencia: yo he utilizado muchas veces este truco y solamente en este mes descubrí que tiene un bug cuando el conjunto esta ordenado por una expresión compuesta. Por ejemplo:
Código SQL:
Ver original
  1. DECLARE @variable VARCHAR(MAX);
  2. SELECT @variable=COALESCE(@variable + ' ', '') + dato FROM #temp ORDER BY dato+'';
  3. SELECT @variable AS campo;
(Con Order By dato funciona perfectamente y afortunadamente todos nuestros códigos en la producción estan ordenados por columnas y no por expresiones)
Según Microsoft este metodo no esta apoyado por ellos
y debemos utilizar el XML:
Código SQL:
Ver original
  1. DECLARE @variable VARCHAR(MAX);
  2. SELECT  @variable=(SELECT COALESCE(@variable,'')+' '+dato
  3.             FROM     #temp
  4.             ORDER BY dato+''
  5.             FOR XML PATH, TYPE).VALUE('.[1]','Varchar(Max)');
  6. SELECT @variable AS campo;
Ordenado por expresiones? como?? :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 04/11/2013, 14:12
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Como juntar dos valores de dos campos diferentes con una consulta

Por ejemplo- en este hilo hay una pregunta sobre columna de cadenas tales como
1/2013
1/2014
10/2013
10/2014
que deben ser ordenadas como si fueran fechas.

Otro ejemplo - hay una columna de fechas y queremos ordenarlas segun la "distancia" de hoy - Abs(DateDiff(Day,GetDate(),MiFecha)).
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #9 (permalink)  
Antiguo 04/11/2013, 15:24
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como juntar dos valores de dos campos diferentes con una consulta

aaaa ok i got it :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: combinar, juntar, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:00.