Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/04/2012, 15:18
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Problemas con CASE

Hola tumbero_x:

No veo ningún problema con la sintaxis... pero si dices que no marca error, pero no funciona eso quiere decir que no estás obteniendo el resultado esperado lo que sería un error de lógica, no un problema con la consulta... lo que tendrías que decirnos es qué información tienes en tu tabla y qué es lo que esperas de salida... checa este script:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +-------------+
  3. | setos_en_sa |
  4. +-------------+
  5. |           1 |
  6. |           2 |
  7. |           3 |
  8. |           4 |
  9. |           5 |
  10. |           6 |
  11. |           7 |
  12. |           8 |
  13. |           9 |
  14. +-------------+
  15. 9 rows in set (0.00 sec)
  16.  
  17. mysql> SELECT
  18.     -> setos_en_sa,
  19.     -> CASE setos_en_sa
  20.     -> WHEN 1 THEN "entrada"
  21.     -> WHEN 2 THEN "salida"
  22.     -> WHEN 3 THEN "entrada x edi"
  23.     -> WHEN 4 THEN "salida x edi"
  24.     -> WHEN 5 THEN "entrada x eli"
  25.     -> WHEN 6 THEN "salida x eli"
  26.     -> WHEN 7 THEN "entrada x pro"
  27.     -> WHEN 8 THEN "salida x pro"
  28.     -> END case_setos_en_sa
  29.     -> FROM tabla;
  30. +-------------+------------------+
  31. | setos_en_sa | case_setos_en_sa |
  32. +-------------+------------------+
  33. |           1 | entrada          |
  34. |           2 | salida           |
  35. |           3 | entrada x edi    |
  36. |           4 | salida x edi     |
  37. |           5 | entrada x eli    |
  38. |           6 | salida x eli     |
  39. |           7 | entrada x pro    |
  40. |           8 | salida x pro     |
  41. |           9 | NULL             |
  42. +-------------+------------------+
  43. 9 rows in set (0.00 sec)

Para todos los valores de la tabla regresa su correspondiente descripción. En el caso del setos_en_sa = 9, AL NO EXISTIR NINGUNA CONDICIÓN PARA ESTE VALOR REGRESA UN NULL... puedes agregar una condición ELSE al final para este tipo de casos.

Saludos
Leo.