ROUND()

1 comentario

Descripción: Redondea un número al entero más próximo. Si la parte fraccional es 0.5, se redondea hacia arriba para los números positivos y hacia abajo para los números negativos. Con el argumento opcional escala, el número puede ser redondeado a múltiplos de potencias de diez (decenas, centenas, etc.) en lugar de solamente a enteros.

Tipo de resultado: Integer, (escalado) BigInt o Doble precisión

Sintaxis:

ROUND(número[, <escala>])

<número> = una expresión numérica

<escala> = un número entero especificando la cantidad de lugares decimales hasta los que debe ser redondeado. Ejemplo:

0 para redondear a un número entero

1 para redondear al más cercano múltiplo de 0.1

2 para redondear al más cercano múltiplo de 0.01

Nota:

Si el argumento escala está presente, el resultado tiene la misma escala que el primer argumento. Ejemplos:

ROUND(123.456, 1) devuelve 123.500, no 123.5

ROUND(12345.4, -3) devuelve 12.000,0 no 12

ROUND(21.1234, 0) devuelve 21.0000, no 21

  • Si no se especifica una escala, se supone que la escala es 0

ROUND(12.3456) devuelve 12

 

.

 

Un stored procedure para averiguar la cantidad de filas de todas las tablas

1 comentario

A veces nos interesa saber ¿cuáles tablas de mi Base de Datos no tienen filas? o quizás ¿cuáles tablas de mi Base de Datos tienen filas?

Este simple stored procedure seleccionable nos dará la respuesta:


SET TERM ^ ;

CREATE PROCEDURE CANTIDAD_FILAS_TABLAS
RETURNS(
   cNombreTabla   VarChar(32),
   nCantidadFilas Integer)
AS
   DECLARE VARIABLE cComando VarChar(255);
BEGIN

 FOR SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG = 0 INTO cNombreTabla DO BEGIN
    cComando = 'SELECT COUNT(*) FROM ' || Trim(cNombreTabla) ;
    EXECUTE STATEMENT cComando INTO nCantidadFilas ;
    SUSPEND;
 END

END^

SET TERM ; ^

Para ejecutarlo deberás escribir:

SELECT
   *
FROM
   CANTIDAD_FILAS_TABLAS

.