Caso cuando, luego, uso de la función en la declaración SQL

El estuche tiene dos formatos. Función de caso simple y función de búsqueda de caso. --Simple
Case function
CASE sex
         WHEN '1' THEN'Male '
         WHEN' 2 ' THEN'Female
'
ELSE'Other 'END --Función de búsqueda de casos
CASE WHEN sex =' 1 ' THEN'Male '
         WHEN sex = '2' ENTONCES 'Femenino'
ELSE'Otro 'FIN

Estos dos métodos pueden lograr la misma función. La función de caso simple está escrita de forma relativamente concisa, pero en comparación con la función de búsqueda de caso, existen algunas limitaciones en términos de funciones, como la redacción de juicios.
Hay otro problema que necesita atención: la función Case solo devuelve el primer valor que cumple la condición, y la parte Case restante se ignorará automáticamente.
- Por ejemplo, en la siguiente parte de SQL, nunca obtendrá el resultado de la "segunda categoría"
CASE WHEN col_1 IN ('a', 'b') THEN 'first category'
         WHEN col_1 IN ('a') ENTONCES 'La segunda categoría'ELSE'otro
' FIN

Echemos un vistazo a lo que se puede hacer con la función Case.

Primero, los datos conocidos se agrupan y analizan de otra manera.

Hay los siguientes datos: (Para ver más claramente, no usé el código de país, sino que usé directamente el nombre del país como clave principal)
país (población)
China 600
Estados Unidos 100
Canadá 100
Reino Unido 200
Francia 300
Japón 250
Alemania 200
México 50
India 250

Según los datos de población de este país, cuente la población de Asia y América del Norte. Debería obtener el siguiente resultado.
Continente Población
Asia 1100
Norteamérica 250
Otros 700

¿Qué harías si quisieras solucionar este problema? Generar una vista con un código de continente es una solución, pero es difícil cambiar dinámicamente la forma de las estadísticas.
Si usa la función Case, el código SQL es el siguiente:
SELECT SUM (población),
        CASE country
                WHEN'China 'THEN'Asia'
                WHEN'India 'THEN'Asia'
                WHEN'Japan 'THEN'Asia'
                WHEN'United States 'ENTONCES' América del Norte '
                CUANDO' Canadá 'ENTONCES' América del Norte '
                CUANDO' México 'ENTONCES' América del Norte '
        eLSE' otro 'FINALIZA
la Tabla FROM_A
el GRUPO POR País el CASO
                CUANDO' China 'ENTONCES' Asiático '
                CUANDO' India ' ENTONCES 'Asiático'
                CUANDO 'Japón'


                CUANDO 'México' ENTONCES'Norteamérica '
        ELSE'Otros' FIN;

De manera similar, también podemos usar este método para juzgar el nivel de salarios y contar el número de personas en cada nivel. El código SQL es el siguiente;
SELECCIONE              EL
        CASO CUANDO salario <= 500 ENTONCES '1'
CUANDO salario> 500 Y salario <= 600 ENTONCES '2'
             CUANDO salario> 600 Y salario <= 800 ENTONCES '3'
             CUANDO salario> 800 Y salario <= 1000 THEN '4'
        ELSE NULL END salary_class,
        COUNT (*)
FROM Table_A
GROUP BY
        CASE CUANDO salario <= 500 LUEGO '1'
             CUANDO salario> 500 Y salario <= 600 ENTONCES '2'
             CUANDO salario> 600 Y salario < = 800 ENTONCES '3'
             CUANDO salario> 800 Y salario <= 1000 ENTONCES '4'
        ELSE NULL END;

En segundo lugar, utilice una declaración SQL para completar la agrupación de diferentes condiciones.

Los siguientes datos están disponibles
País (país) Sexo (población)
China 1340
China 2260
Estados Unidos 1 45
Estados Unidos 2 55
Canadá 1 51
Canadá 2 49
Reino Unido 1 40
Reino Unido 2 60

Agrupados por país y género, los resultados son los siguientes:
País Masculino Femenino
China 340260
Estados Unidos 45 55
Canadá 51 49
Reino Unido 40 60

En circunstancias normales, UNION también se puede utilizar para realizar consultas con una declaración. Pero eso aumenta el consumo (dos partes Select), y la declaración SQL será más larga.
El siguiente es un ejemplo del uso de la función Case para completar esta función
SELECT país,
       SUMA (CASE CUANDO sexo = '1' ENTONCES
                      población ELSE 0 FIN), - Población masculina
       SUMA (CASO CUANDO sexo = '2' ENTONCES
                      población ELSE 0 END)
--Población femenina DE Table_A
GROUP BY country;

De esta manera, usamos Seleccionar para completar la forma de salida de la tabla bidimensional, que demuestra completamente el poder de la función Case.

En tercer lugar, utilice la función Case en Check.

Usar la función Case en Check es una muy buena solución en muchas situaciones. Puede haber muchas personas que no utilicen Check en absoluto, por lo que le sugiero que intente usar Check in SQL después de leer los siguientes ejemplos.
Tomemos un ejemplo de la
empresa A. Esta empresa tiene la regla de que el salario de las empleadas debe ser superior a 1.000 yuanes. Si usa Check y Case para expresar, como se muestra a continuación
CONSTRAINT check_salary CHECK
           (CASE WHEN sex = '2'
                  THEN CASE WHEN salary> 1000
                        THEN 1 ELSE 0 END
                  ELSE 1 END = 1)

Si simplemente usa Cheque, como se muestra a continuación
CONSTRAINT check_salary CHECK
           (sexo = '2' Y salario> 1000)

Si se cumplen las condiciones para las empleadas, los empleados varones no pueden ingresar.

 

Supongo que te gusta

Origin blog.csdn.net/My_SweetXue/article/details/109809833
Recomendado
Clasificación