Cómo utilizar la expresión caso de sql con las condiciones de búsqueda

Video: Insertar datos y validar existencia en C# - SQL Server

Una forma eficaz de utilizar el SQL CASO expresión es para buscar una tabla de filas en las que una condición de búsqueda especificada es verdadera. Si utiliza CASO De esta manera, la expresión utiliza la siguiente sintaxis:

Video: STREAMING | Libertad de expresión y el caso Charlie Hebdo

CASEWHEN condición1 ENTONCES result1WHEN condition2 ENTONCES CUANDO condición result2 ...norte ENTONCES resultarnorteresultado ELSExFIN

CASO examina la primera fila de clasificación (La primera fila que cumple las condiciones de la envolvente DÓNDE cláusula, en su caso) para ver si condición1 es verdad. Si lo es, el CASO expresión recibe un valor de resultado1.

Si condición1 no es verdad, CASO evalúa la fila de condición2. Si condición2 es cierto que el CASO expresión recibe el valor de result2, y así. Si ninguna de las condiciones mencionadas son verdaderas, la CASO expresión recibe el valor de resultx.

los MÁS cláusula es opcional. Si la expresión no tiene MÁS cláusula y ninguna de las condiciones especificadas son verdaderas, la expresión recibe un valor nulo. Después de la instrucción SQL que contiene el CASO la expresión se aplica a sí mismo la primera fila de clasificación en una mesa y toma la acción apropiada, que procesa la siguiente fila. Esta secuencia continúa hasta que la instrucción SQL termina de procesar toda la tabla.

Actualizar los valores basados ​​en una condición

Porque se puede incrustar una CASO expresión dentro de una instrucción SQL en casi cualquier lugar es un valor posible, esta expresión le da una gran flexibilidad. Puedes usar CASO dentro de una ACTUALIZAR declaración, por ejemplo, para realizar cambios en los valores de la tabla - basado en ciertas condiciones. Consideremos el siguiente ejemplo:

Valoración de actualización FOODSSET = CASEWHEN FAT lt; 1Y `muy bajo fat`WHEN FAT lt; 5Entonces `bajo fat`WHEN FAT lt; 20 Entonces `moderado fat`WHEN FAT lt; ataque al corazón city`END 50THEN `alta fat`ELSE` -

Esta declaración se evalúa la CUANDO condiciones en orden hasta que el primer valor se devuelve true, 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 CLASIFICACIÓN columna que da una rápida evaluación del significado del contenido de grasa. Si ejecuta el precedente ACTUALIZAR sobre la mesa ALIMENTOS, la instrucción asigna un valor de espárragos muy baja en grasa, da un valor de pollo bajo en grasa, y pone almendras tostadas en el ataque al corazón de la ciudad categoría.

Evitar las condiciones que provocan errores

Otro uso valioso de CASO es evitación excepción - la comprobación de las condiciones que causan errores.

Consideremos un caso que determina la compensación para los vendedores. Las empresas que compensen sus vendedores por comisión directa a menudo pagan sus nuevos empleados, dándoles una 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 se va eliminando gradualmente a medida que aumentan sus comisiones:

ACTUALIZACIÓN SALES_COMPSET COMP = COMISIÓN + CASEWHEN COMISIÓN gt; DRAWTHEN 0WHEN COMISIÓN lt; DRAWTHEN DRAWEND -

Si la comisión del vendedor es cero, la estructura de este ejemplo se evita una operación de división por cero, lo que provocaría un error si se permite que suceda. 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 ENTONCES expresiones en una CASO expresión debe ser del mismo tipo - todas numéricas, todos los caracteres, o la totalidad fecha. El resultado de la CASO expresión es también del mismo tipo.

Artículos Relacionados