SQL - cambiar en una consulta el valor

 
Vista:

cambiar en una consulta el valor

Publicado por Jano (1 intervención) el 15/05/2009 11:29:09
Hola,

quería preguntarles si era posible crear una consulta SQL tal que, al recibir un determinado valor, según cual sea este, devuelva otro...

Quiero decir, yo tengo la siguiente consulta simple:

SELECT sname, ssurname, iTipe FROM users WHERE id = 3 ORDER BY sname, ssurname

en mi base de datos, "iTipe" es un entero que solo puede tener los valores 0, 10 y 20, pero me gustaría que, en caso de que devolviera 0, cambiarlo a un string que fuera, por ejemplo, "normal", si fuera 10 "iniciado" y si fuera 20 "experto".

Lo normal sería cambiarlo en el código o incluso cambiar la base de datos... pero por diversos motivos me sería muy útil hacerlo desde la propia sentencia SQL

¡gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Respuesta

Publicado por Leopoldo Taylhardat (93 intervenciones) el 15/05/2009 14:48:49
Saludos...
Tienes que ver si tu dialecto de sql (el de tu gestor de bd) permite el uso de 'IF... ELSE... ENDIF' o el uso de 'CASE... END CASE' o una función interna de la bd que te permita retornar el valor con el parámetro que le mandes...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

RE:Respuesta

Publicado por roger (93 intervenciones) el 15/05/2009 15:00:00
si es sql server lo puedes hacer asi

SELECT sname, ssurname, CASE iTipe WHEN 0 THEN 'Normal' WHEN 10 THEN 'Iniciado' WHEN 20 THEN 'Experto' END as tipo
FROM users WHERE id = 3 ORDER BY sname, ssurname
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:cambiar en una consulta el valor

Publicado por asdfg (21 intervenciones) el 15/05/2009 21:50:27
utiliza decode
SELECT DECODE (co_pais, /* Expresion a evaluar */
'ESP', 'ESPAÑA', /* Si co_pais = 'ESP' ==> 'ESPAÑA' */
'MEX', 'MEXICO', /* Si co_pais = 'MEX' ==> 'MEXICO' */
'PAIS '||co_pais)/* ELSE ==> concatena */
FROM PAISES;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar