Hola a todos,
Quisiera saber si existe alguna instrucción o método en SQL Server2000 que
permita seleccionar resultados poniendo como nombre de columnas el valor
contenido en un campo.
Me explico: tengo una tabla en la que guardo los campos (datos) de
diferentes copntratos de este modo:
tb_Detalle(idCampo,idContrato,NombreCampo,ValorCampo)
Ejemplo de datos en esta tabla serían:
idCampo idContrato NombreCampo ValorCampo
1 1 nombre Juanjo
2 1 apellido Gómez
3 1 edad 25
(3 filas afectadas)
Bien, pues ahora quiero sacar todos los valores que existan para un
determinado contrato (p.ej: idContrato=1) en una misma fila, de este modo:
idContrato nombre apellido edad
1 Juanjo Gómez 25
He probado con este select, pero no da resultado:
SELECT idContrato,
(CASE WHEN NombreCampo='nombre' THEN ValorCampo END) as Nombre,
(CASE WHEN NombreCampo='apellido' THEN ValorCampo END) as Apellido,
(CASE WHEN NombreCampo='edad' THEN ValorCampo END) as Edad
FROM tb_Detalle WHERE idContrato=1
Sé que en Oracle existe una herramienta o instrucción (split me parece) que
ayuda a generar este tipo de resultados, pero desconozco si existe algo de
este tipo en SQLServer2000. Y por más que miro en el Libro de Ayuda, no
acabo de entender cómo poder hacerlo.
Bueno, espero no haberos aburrido mucho con mi problema (ha sido algo
extenso tal vez) pero gracias por leerlo e intentar ayudar.
Un saludo a todos!!
Capt. Huevo
Leer las respuestas