Cuando tenemos una columna en una tabla de SQL que puede contener diferentes valores y según el valor de cada tupla nosotros queremos mostrar un texto, número, etc. al momento de hacer el SELECT (es decir queremos hacer lo que en Visual Basic .NET sería un Select Case) disponemos de la sentencia CASE de SQL que tiene la sintaxis:
SELECT CASE columna WHEN valor1 THEN ‘es valor 1′ WHEN valor2 THEN ‘es valor 2′ …. END From Tabla
Donde valor1, valor2, etc. son los valores que se encuentran almacenados en la base de datos y los textos “es valor 1″, “es valor 2″ son los textos que se mostrarán en el resultado del SELECT para cada tupla que cumpla con valor1 y valor2 respectivamente, valor1 y valor2 y los valores a mostrar pueden ser de cualquier tipo.
5 comentarios hasta ahora
Deja un comentario
GRACIAS POR ESTE ARTICULO, ME SACO DE UNA URGENCIA.
SALUDOS
YIBRANT
http://WWW.ROCKSONICO.COM
Comentario por YIB MEDINA enero 8, 2009 @ 6:50 pmoe no me funciona po caco maldito !!! JAJAJA
Comentario por Iván junio 17, 2009 @ 7:15 amsalu2!
Siempre hay algo nuevo que aprende de sql, gracias por tu articulo
Comentario por German Avila febrero 18, 2011 @ 5:16 amUna pregunta y ahora como aplico el case en un where?
para si de acuerdo a una variable este me incluya un and en el where si no no?
algo asi?
variable1 = a
select * from tabla
where campo1 = 3
case when variable1 = a then AND campo2 = 8
end;
No se como hacerlo …
Alguien que me ayude?
se valen if lo que sea pero que salga la consuta…
Gracias;
Comentario por Tatiana julio 29, 2011 @ 11:02 pmCómo se haría si quiero escoger el valor de una columna en función de una comparación? Algo así cómo… WHEN columna1 = columna2 THEN
Lo estoy probando en SQL Server y no me funciona
Comentario por Fran octubre 5, 2011 @ 8:42 am