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

renombrar atributos en tuplas

Estas en el tema de renombrar atributos en tuplas en el foro de Mysql en Foros del Web. Hola! estoy haciendo consultas en sql y me entro la duda como renombrar ciertos valores dentro de una tabla. El caso es este: tengo una ...
  #1 (permalink)  
Antiguo 07/06/2009, 09:38
 
Fecha de Ingreso: junio-2009
Mensajes: 17
Antigüedad: 14 años, 10 meses
Puntos: 0
renombrar atributos en tuplas

Hola! estoy haciendo consultas en sql y me entro la duda como renombrar ciertos valores dentro de una tabla. El caso es este: tengo una tabla alumnos, de la cual deseo mostrar nombre, carrera y sexo (que esta definido en 1=Masculino y 2= Femenino).
Deseo que en vez de mostrarme los valores, me imprima lo que representan. Tengo alguna forma de hacerlo sin crear otra tabla sexos y realizar un join? usando una clausula AS por ejemplo?
Deseo que me imprima:

Nombre--Carrera--Sexo
LOPEZ, CLEMENTINA -- 12 -- Femenino
RUIZ, ARIEL -- 10 -- Masculino

Desde ya gracias por sus aportes!
  #2 (permalink)  
Antiguo 07/06/2009, 10:05
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: renombrar atributos en tuplas

Las cláusulas AS (que por otro lado es opcional y no mandatoria), afecta los nombres de columnas, de tablas y de bases de datos, no el contenido del campo.
Para alterar lo que se muestra en el registro debes usar funciones de cadena o numéricas, como cualquier otra operación sobre el dato. Es en otro orden lo mismo que si quisieras cambiar una representación numérica de un campo, por otra ¿Qué usas?: Funciones numéricas, de cadena, de fecha, etc.
Bueno, existen varias formas: una es usando la función CASE/WHEN/ELSE/END, otra usando la función IF().
En el contexto de lo tuyo, mi elección sería usar IF, porque es más simple para pocas alternativas (masculino/femenino):

Código sql:
Ver original
  1. SELECT Nombre, Carrera, IF(SEXO='F', 'Femenino', 'Masculino') Sexo
  2. FROM alumnos;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 07/06/2009, 12:16
 
Fecha de Ingreso: junio-2009
Mensajes: 17
Antigüedad: 14 años, 10 meses
Puntos: 0
renombrar atributos en tuplas

Muchas gfracias por contestar, entiendo lo que me decis, hay varias funciones, y esa me sirve pero al intentar hacerla en postgres me dice que la columna Masculino no existe
Me quedo asi:

Código:
SELECT a."AlumnoNombre", IF(a."AlumnoSexo" = 1, "Masculino", "Femenino") AS SEXOS
FROM "Alumnos" AS a
  #4 (permalink)  
Antiguo 07/06/2009, 13:02
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: renombrar atributos en tuplas

Si te fijas, yo no he usado comillas sino apóstrofes para encerrar las cadenas. Así se hace en MySQL.
Por otro lado, si tu problema es en Postgre, ¿por qué estás posteando la pregunta en el de MySQL?
PostgreSQL tiene su propio foro. Postea allí.
__________________
¿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 07/06/2009, 14:13
 
Fecha de Ingreso: junio-2009
Mensajes: 17
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: renombrar atributos en tuplas

ok, tenes razon, gracias igual!
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 17:51.