Instrucción equivalente a Silnm() de Access en Base

La instrucción Silnm de Access evalúa una condición expresada en su primer argumento, y devuelve el valor evaluado en su segundo argumento si la condición es cierta, o el valor evaluado en su tercer argumento si la condición es falsa.

SiInm(ExpresiónCondición, Siverdadera, Sifalsa)

En OOo.Base disponemos de la función IIf ( ExpresiónCondición ; Siverdadera ; Sifalsa ) para ser utilizada desde una macro.

Si lo que deseamos es realizar una consulta en la que se evalúe una expresión de este tipo, podremos utilizar la instrucción CASE WHEN, que a diferencia de la función IIf, no nos devuelve un valor, sino que ejecuta una orden SQL:

CASE WHEN ExpresiónCondición THEN Siverdadera ELSE Sifalsa END

Permite evaluar varias expresiones de condición, devolviendo un valor si es cierta una de ellas o el valor tras el ELSE si no se cumple ninguna:

CASE WHEN ExpresiónCondición1 THEN Siverdadera1 WHEN ExpresiónCondición2 THEN Siverdadera2 WHEN ExpresiónCondición3 THEN Siverdadera3 ELSE SiTodasfalsas END

Por ejemplo:

CASE var_one
    WHEN 22, 23 THEN INSERT INTO t_one ...;
    WHEN IN (2, 4, 5) THEN DELETE FROM t_one WHERE ...;
    ELSE UPDATE t_one ...;
END CASE

O también:

CASE WHEN var_one = 22 OR var_one = 23 THEN INSERT INTO t_one ...;
    WHEN var_one IN (2, 4, 5) THEN DELETE FROM t_one WHERE ...;
    WHEN var_two IS NULL THEN UPDATE t_one ...;
    ELSE UPDATE t_one ...;
END CASE

Nota: No confundir con la instrucción CASE. Ejemplo de ésta última:

CASE dialcode WHEN 44 THEN 'Britain' WHEN 49 THEN 'Germany' ELSE 'Other country' END
CASE WHEN dialcode=44 THEN 'Britain' WHEN dialcode=49 THEN 'Germany' WHEN dialcode < 0 THEN
'baddial code' ELSE 'Other country' END
CASE dialcode WHEN IN (44, 49,30) THEN 'Europe' WHEN IN (86,91,91) THEN 'Asia' WHEN < 0 THEN
'baddial code' ELSE 'Other continent' END

Consulta el manual de HSQL para más información (Versión PDF).

OpenOffice.org Base utiliza como motor de base de datos HyperSQL.

No hay reacciones, todavía


Form is loading...

Otros visitantes vieron...

  • You are not a member of this collection, therefore you are not allowed to access it.

  • ¿Cómo importar una hoja de cálculo hecha en Calc o en Excel rápidamente a OpenOffice Base?


    Si te lo has preguntado alguna vez, aquí te damos una respuesta.

    Rica, rica…

  • Insertar imágenes en una base de datos OpenOffice

    ¿Necesitas utilizar imágenes en OpenOffice Base? ¿Crees que necesitarás leerte un ladrillo de manual para conseguirlo?

    Este minitutorial, explicado paso a paso, te ayudará a conseguir tu objetivo.

     

    Cóm…

Patrocinado por SBS  Contacto • © 2020 by SalvaDCH