La sentencia CASE utiliza las reglas definidas en cláusulas WHEN para seleccionar un bloque de sentencias que se han de procesar.
Hay dos formatos de la sentencia CASE: el sencillo y el buscado.
En el formato sencillo, la expresión principal se evalúa en primer lugar. Cada expresión de cláusula WHEN se evalúa por turnos hasta que el resultado es igual al de la expresión principal. A continuación, se ejecuta las sentencias de la cláusula WHEN. Si no se encuentra ninguna coincidencia y la cláusula ELSE opcional está presente, se ejecutan las sentencias de la cláusula ELSE en su lugar. No es necesario que los valores de prueba sean literales. El único requisito es que la expresión principal y las expresiones de la cláusula WHEN se evalúen como tipos que se puedan comparar.
En el formato buscado, cada expresión de cláusula WHEN se evalúa por turno hasta que una se evalúa como TRUE. Entonces se ejecutan las sentencias de esa cláusula WHEN. Si ninguna de las expresiones se evalúa como TRUE y la cláusula ELSE opcional está presente, se ejecutan las sentencias de la cláusula ELSE. No tiene por qué haber ninguna similitud entre las expresiones de cada cláusula CASE. El único requisito es que todas se evalúen en un valor booleano.
El lenguaje ESQL tiene una sentencia CASE y una función CASE (consulte el apartado Función CASE para ver detalles de la función CASE). La sentencia CASE elige una entre un conjunto de sentencias para ejecutarla. La función CASE elige una entre un conjunto de expresiones para evaluarla y devuelve como su valor el valor de retorno de la expresión elegida.
CASE size WHEN minimum + 0 THEN SET description = 'small'; WHEN minimum + 1 THEN SET description = 'medium'; WHEN minimum + 2 THEN SET description = 'large'; CALL handleLargeObject(); ELSE SET description = 'unknown'; CALL handleError(); END CASE;Sentencia CASE buscada:
CASE WHEN i <> 0 THEN CALL handleI(i); WHEN j > 1 THEN CALL handleIZeroAndPositiveJ(j); ELSE CALL handleAllOtherCases(j); END CASE;
Conceptos relacionados
ESQL
Tareas relacionadas
Desarrollo de ESQL
Referencia relacionada
Preferencia de sintaxis
Sentencias ESQL
Función CASE
Avisos |
Marcas registradas |
Descargas |
Biblioteca |
Soporte |
Información de retorno (feedback)
![]() ![]() |
ak04930_ |