SQL Server - valores equivalentes en consulta?

 
Vista:

valores equivalentes en consulta?

Publicado por jorge (7 intervenciones) el 30/07/2008 18:59:09
Tengo una tabla donde hay un campo que se llama Estado (cuyos valores son 0,1 y 2)
donde equivalen a: 0=anulado, 1=activo, 2=en espera

como se puede hacer un procedimiento almacenado que muestre el contenido de esa tabla,
pero que en lugar de aparecer estado 0,1,2 aparezcan sus equivalentes ('anulado', 'activo', 'en espera') ?

ej. select * from mitabla:

cod numero estado
------------------------------------
1 1-245 1
2 1-246 0
3 2-458 2


Por este:

cod numero miestado
------------------------------------
1 1-245 activo
2 1-246 anulado
3 2-458 en espera

Gracias por la respuesta.
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

RE:valores equivalentes en consulta?

Publicado por Jorge Morales (13 intervenciones) el 30/07/2008 19:36:43
Saludos Jorge, creo que te seria mas facil si creas una tabla con la definicion de esas claves (0,1,2) por ejemplo :

Tabla: Estados
miestado | descripcion
--------------------------------
0 | Anulado
1 | Activo
2 | En espera

y la consulta te quedaria mas o menos asi:

Select m.Cod, m.Numero, e.Descripcion
from MiTabla m
inner join Estados e
on e.miestado = m.miestado

te daria como resultado lo que necesitas, la otra forma seria usando case ...when....then.... else.... end pero no te lo recomiendo mucho ya que en caso de agregar otro estado tendrias que modificar tu consulta, pero bueno, te dejo un ejemplo de este metodo que en algun otro caso te servirá:

select Cod, Numero,
Case miestado
when 0 then 'Anulado'
when 1 then 'Activo'
when 2 then 'En espera'
end
from MiTabla

Espero que esto te sea de ayuda y cualquier duda que tengas con gusto te apoyamos.
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:valores equivalentes en consulta?

Publicado por pacopaz (131 intervenciones) el 30/07/2008 19:38:01
Prueba con esto:

select
cod_numero,
case estado
when 0 then 'anulado'
when 1 then 'activado'
when 2 then 'en espera'
else 'no definido'
end as mi_estimado
from
mitabla

Espero que te sirva.

Saludos.
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:valores equivalentes en consulta?

Publicado por Jorge (7 intervenciones) el 01/08/2008 18:27:54
Gracias por las respuestas, me ayudaron y sirvieron de mucho weeeee :)
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