Ver Mensaje Individual
  #6 (permalink)  
Antiguo 20/04/2012, 08:11
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:

El que pongas una sentencia en una lineas o en varias ES COMPLETAMENTE INDISTINTO, esto quiere decir que el error no va por ahí. Ahora bien, lo que se me ocurre es que tuvieras algún caracter "raro" en la consulta, esto suele ocurrir cuando se copia y pega algún código encontrado en internet. Los browser's suelen agregar caracteres especiales para representar los espacios o los saltos de línea.

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.01 sec)
  44.  
  45. mysql> SELECT setos_en_sa, CASE setos_en_sa WHEN 1 THEN "entrada"WHEN 2 THEN "sa
  46. lida"WHEN 3 THEN "entrada x edi"WHEN 4 THEN "salida x edi"WHEN 5 THEN "entrada x
  47. eli"WHEN 6 THEN "salida x eli"WHEN 7 THEN "entrada x pro"WHEN 8 THEN "salida x
  48. pro" END case_setos_en_sa FROM tabla;
  49. +-------------+------------------+
  50. | setos_en_sa | case_setos_en_sa |
  51. +-------------+------------------+
  52. |           1 | entrada          |
  53. |           2 | salida           |
  54. |           3 | entrada x edi    |
  55. |           4 | salida x edi     |
  56. |           5 | entrada x eli    |
  57. |           6 | salida x eli     |
  58. |           7 | entrada x pro    |
  59. |           8 | salida x pro     |
  60. |           9 | NULL             |
  61. +-------------+------------------+
  62. 9 rows in set (0.00 sec)

Por lo tanto, SIEMPRE HAY QUE TECLEAR LAS CONSULTAS, NO COPIARLAS Y PEGARLAS EN LA CONSULA.

Saludos
Leo.