FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
como se usa el alias de campos ?
hola,
utilizo firebird 1.03 y desde ibexpert envio la siguiente consulta de prueba select cdad as cd from tabla order by cd y me dice que campo cd desconocido. Pero es que el alias cd no lo puedo utilizar en ningun otro sitio de la sentencia, ni en where ni en having, operaciones ni nada. Lo estoy haciendo mal o esto es asi. Y si es asi para que vale el alias entonces. |
#2
|
|||
|
|||
El uso de as en los select se usa para especificar el nombre de la columna que se va a mostrar en el resultado. Principalmente se usa para poner un nombre más descriptivo a las consultas del tipo:
En tu caso, debes usar:
|
#3
|
|||
|
|||
Bien, pero supon que hablamos de una expresion compleja a la que se asigna el alias y queremos filtrar u ordernar por esta expresion/campo.
No se puede hacer ?, habria que crear una vista? porque para poner el nombre bonito ya lo hago en la columna del dbgrid o en la etiqueta del formulario. Gracias por contestar. |
#4
|
||||
|
||||
Cita:
No siempre usas consultas para desplegarlas en un DBGrid. Muchas veces has de hacer consultas directamente en un administrador de bases y nombres como sum(total) o trim(concat(apellido, ' ', nombre)) no ayudan mucho para visualizar los datos. Por otra parte, no todos los motores son tan agnósticos de los nombres de alias. Leyendo la documentación de MySql por ejemplo, veo que los alias de campos pueden usarse en cláusulas ORDER BY, GROUP BY y HAVING. // Saludos |
#5
|
|||
|
|||
Hola CarlosN,
maeyanes y roman tienen razón, pero lo que vos tenes que hacer para que la consulta funcione es lo siguiente: select cdad as cd from tabla order by cdad lo que conseguis con ésto es que el nombre de la columna en la consulta será cd y lo estas ordenando por el campo cdad . Eso es perfectamente válido para tu versión de Firebird. saludos, |
#6
|
|||
|
|||
Cita:
Cita:
|
#7
|
|||
|
|||
Gracias por el interes.
Creo por lo que contais que los alias de campos en IB/FB son muy limitados, por ejemplo he comprobado que esto tampoco funciona select cdad, count(blq) as cn, cn*2 from tabla group by cdad (es una operacion ilogica pero demuestra que los alias no se pueden utilizar ni siquiera en otra parte de la expresion) bueno mejor un poco de alias que nada. Por lo menos he confirmado que las sentencias no las escribia yo mal sino que es que es asi. |
#8
|
|||
|
|||
Lo que pasa es que los alias son solo para cuestiones de visualización... por ejemplo, yo solo los uso para casos como el ejemplo que te di o cuando por X razón, 2 tablas tienen un nombre de campo igual y hay que identificarlos en el resultado.
Saludos... |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|