es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Rellene los valores vacíos en una columna basándose en una selección de caso cuando.

Entonces, básicamente lo que quiero lograr es que si cuatro columnas están vacías, una columna contenga un valor de 1 y una columna contenga 0, luego quiero llenar las filas en una columna que cumpla con estas condiciones con un valor predeterminado (0.06077).

Significado: SI COLA, COLB, COLC, COLD ESTÁN VACÍOS y COLE = 0 y COLF = 0, entonces llenar las filas en COL_A que cumplan con estas condiciones con un valor predeterminado de 0.06077.

Intenté lo siguiente:

, CASE WHEN COL_A IS NULL Y COL_B IS NULL Y COL_C IS NULL Y COL_D IS NULL 
Y COL_E = 0 Y COL_F = 1 THEN NVL(COL_A, 0.06077) END 

Lo anterior llenó las entradas que cumplían mis condiciones establecidas. ¿Alguien conoce una posible solución?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el código que has proporcionado está cerca de lograr el resultado deseado, pero falta una condición. En el código que has proporcionado falta la condición “COL_F = 0”. Por lo tanto, el código corregido debería ser:

    , CASE WHEN COL_A IS NULL AND COL_B IS NULL AND COL_C IS NULL AND COL_D IS NULL 
    AND COL_E = 0 AND COL_F = 0 THEN COALESCE(COL_A, 0.06077) END 
    

    Se utiliza la función COALESCE en lugar de NVL para manejar el escenario en el que COL_A también es NULL. La función COALESCE devuelve el primer valor no NULL de la lista de argumentos. En este caso, devolverá 0.06077 cuando COL_A sea NULL.

Comments are closed.