Alias de columnas en Sql Server 20000

Por si tienes un momentito te mando una pregunta, que a ver si me puedes atender.
Veamos. Por ejemplo, tengo 2 tablas con los siguientes campos :
Tabla1 Tabla2
------- ------
Cod_T1 Cod_T2
Texto1 texto1
Texto2 numero
Información
Quiero seleccionar aquellas columnas q
Tengan el campo código coincidente :
select * from tabla1
inner join tabla2 on
tabla1.cod_T1 = tabla2.cod_T2
Bueno, mi problema esta en q cuando se crea una consulta así en la q hay coincidencia de nombres de columna entre estas 2 tablas de ejemplo (en este caso, texto1), al crear al consulta el administrador corporativo de Sql server 2000 no deja porque en este caso el campo texto1 se especifica + de 1 vez.
Claro, en este caso y en casos en los haya pocos campos por tabla, la solución no es engorrosa. Seria :
select
Cod_T1, Texto1 as "Tabla1.Texto1", Texto2
from tabla1
inner join tabla2 on
tabla1.cod_T1 = tabla2.cod_T2
Mi pregunta es si en el caso de q la tabla Tabla1 tuviese 50 campos y la tabla tabla2 otros 50, en donde solo 3 nombres de columna fuesen coincidentes, ¿tendría q hacer? :
select campo1 as "c1", campo2 as "c2", .......
O hay alguna forma de establecer el alias a la columna q interese y seleccionar el resto, haciendo algo así :
select campo1 as pp, resto de campos from Tabla1 .......
¿Se entinde, no?
A ver si me puedes echar una mano. Venga.
Respuesta
1
No se puede que yo sepa, he revisado la sintaxis de select, por si acaso, pero no no parece que admita algo somo lo que dices, lo siento...
Revisa
SELECT, elegir columnas
De todas formas, devolver 100 campos en solo select no es algo que se vaya a presentar muy a menudo, los usuarios no son capaces de leer y asimilar tanta información ;-)
Un Saludo
Miguel Egea
http://www22.brinkster.com/miguele
Buenas.
Devolver 100 campos no. Pero solo con tener que devolver uno ya seria un coñazo. Imaginate que el campo que se repite respecto a la otra tabla es el nº 20 y tienes en total 22. Tienes que recorrerte uno a uno, estableciendo su alias correspondiente solo por un campo.
Por eso, yo preguntaba si existía alguna forma de seleccionar solo el campo que se repite asociandole un alias (eso es factible : select campo as loqsea, etc ... ) y para no tener que escribir el resto de columnas, alguna forma + sencilla.
Bueno, sino hay forma posible, gracias de todas formas por responderme.
Un saludo
Buenas de nuevo.
Existe alguna funcion q t permita saber el nº q ocupa un campo en una tabla segun su posicion y el nº total de campos en esa tabla ? :
Tabla1
---------
Código
Texto
Variación
info
...
Nº de campos ---> 4
Nº de lugar en la tabla del campo texo
--> 2
¿?
Gracias, por atenderme nuevamente.
Prueba esto
Use northwind
GO
SELECT NAME,colid FROM SYSCOLUMNS where id = object_id('Customers') order by colid
Un Saludo
Miguel Egea
Sql-Server MVP

1 respuesta más de otro experto

Respuesta
Realmente yo no conozco ninguna instrucción que haga lo que necesitas, aunque lo puedes resolver de dos maneras.
1.- cuando haces el select
select campo1 as pp, * from Tabla1 esto te duplica el campo1 pero tienes un campo con el que puedes trabajar tranquilamente, el unico nconveniente que conozco es memoria.
2.- Esta es la forma que yo lo hago, le digo al query analizer que me genere el select yo lo copio a mi programa y solo renombro los campos que necesito

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas