Cómo utilizar la expresión caso sql con las condiciones de búsqueda
Una forma eficaz de utilizar el SQL CASO
expresión es para buscar una mesa para las filas en las que una condición de búsqueda especificada es cierto. Si utiliza CASO De esta manera, la expresión utiliza la siguiente sintaxis:CASEWHEN condición1 ENTONCES result1WHEN condition2 ENTONCES result2 ... CUANDO condiciónn ENTONCES resultarnResultado ELSEXFIN
CASO examina el primero fila de calificación (la primera fila que cumpla las condiciones de la envolvente DÓNDE cláusula, si los hay), para ver si condición1 es cierto. Si lo es, la CASO expresión recibe un valor de resultado1.
Si condición1 no es verdad, CASO evalúa la fila para condition2. Si condition2 es cierto que el CASO expresión recibe el valor de result2, etcétera. Si ninguna de las condiciones mencionadas son verdaderas, el CASO expresión recibe el valor de resultx.
los ELSE cláusula es opcional. Si la expresión no tiene ELSE cláusula y ninguna de las condiciones especificadas son True, la expresión recibe un valor nulo. Después de la instrucción SQL que contiene el CASO la expresión se aplica en sí a la primera fila de calificación en una mesa y toma la acción apropiada, que procesa la siguiente fila. Esta secuencia continúa hasta que la sentencia SQL termina de procesar toda la tabla.
Actualizar los valores basados en una condición
Porque se puede incrustar un CASO expresión dentro de una sentencia de SQL en casi cualquier lugar de un valor es posible, esta expresión le da una gran flexibilidad. Puedes usar CASO dentro de una ACTUALIZACIÓN declaración, por ejemplo, para realizar cambios en los valores de la tabla - sobre la base de ciertas condiciones. Considere el siguiente ejemplo:
CALIFICACIÓN FOODSSET ACTUALIZACIÓN = CASEWHEN FAT lt; 1Entonces 'muy bajo fat'WHEN FAT lt; 5Entonces 'low fat'WHEN FAT lt; 20Entonces "moderado fat'WHEN FAT lt; 'Alta fat'ELSE' 50THEN corazón ataque city'END -
Esta declaración evalúa la CUANDO condiciones en orden hasta el primer valor Verdadero es devuelto, después de lo cual la declaración ignora el resto de las condiciones.
Una tabla de base de datos que muestra el contenido de grasa de 100 gramos de ciertos alimentos puede contener una RATING columna que da una rápida evaluación del significado del contenido de grasa. Si ejecuta el anterior ACTUALIZACIÓN sobre la mesa ALIMENTOS, la instrucción asigna un valor de espárragos muy baja en grasa, da el pollo un valor de bajo en grasa, y pone almendras tostadas en el ataque al corazón de la ciudad categoría.
Evite las condiciones que causan errores
Otro uso valioso de CASO es evitación de excepción - la comprobación de las condiciones que causan errores.
Considere la posibilidad de un caso que determina la indemnización por los vendedores. Las empresas que compensen sus vendedores por comisión directa a menudo pagan a sus nuevos empleados, dándoles un dibujar en contra de las futuras comisiones que se espera que gane. En el siguiente ejemplo, los nuevos vendedores reciben un empate contra Comisión- el sorteo es eliminado gradualmente a medida que sus comisiones suben:
ACTUALIZACIÓN SALES_COMPSET COMP = COMISIÓN + CASEWHEN COMISIÓN> DRAWTHEN 0WHEN COMISIÓN lt; DRAWTHEN DRAWEND -
Si la comisión del vendedor es cero, la estructura en este ejemplo evita una operación de división por cero, lo que causaría un error si se permite que ocurra. Si el vendedor tiene una comisión distinta de cero, la compensación total es la comisión más un sorteo que se reduce en proporción al tamaño de la comisión.
Toda la DESPUÉS expresiones en un CASO expresión debe ser del mismo tipo - todo numérico, todos los caracteres, o la totalidad fecha. El resultado de la CASO expresión es también del mismo tipo.