Functions FIREBIRD



FUNCIONES INTERNAS DE FIREBIRD

AGRUPAMIENTOS Y SUMAS
COUNT ( campo )

Devuelve el numero de registros encontrados segun la selección de registros que se haya definido en la parte WHERE de la SQL.

EJEMPLO:

Select count(*) from CLIENTES
AVG( campo ) Delvuelve el promedio de los valores del campo seleccionado.

EJEMPLO:
Select cod_cliente,avg(ventas) from CLIENTES
MIN( campo ) Devuelve el valor mas bajo del campo seleccionado.

EJEMPLO:
Select codigo,min(pvp) from ARTICULOS
MAX( campo ) Devuelve el valor mas alto del campo seleccionado.

EJEMPLO:
Select cod_cliente,max(ventas) from CLIENTES
SUM( campo ) Devuelve la suma de los valores del campo seleccionado.

EJEMPLO:
Select cod_cliente,sum(ventas) from ARTICULOS
   
   
CONDICIONALES
CASE 
WHEN condicion
then resultado [WHEN...]
[ELSE result] END
Devuelve un valor de un numero de posibilidades.
CASE SIMPLE.

EJEMPLO:

Select name,
age,
case upper(sex)
when 'M' then 'Male'
when 'F' then 'Female'
else 'Unknown'
end,
religion
from people


CASE condicion 
WHEN valor 
THEN resultado 
[WHEN ...] 
[ELSE resultado] END
Devuelve un valor de un numero de posibilidades.
CASE CONDICIONAL.

EJEMPLO:
CanVote = case
when Age >= 18 then 'Yes'
when Age < 18 then 'No'
else 'Unsure'
end;
COALESCE (valor [,....])
IIF (condicion, valor1,valor2) 
NULLIF 
(Valor1,Valor2)

La función COALESCE toma dos o más argumentos y devuelve el valor del
primer argumento si no es NULL. Si todos los argumentos se evalúan como
NULL, se devuelve NULL.

EJEMPLO:

select 
coalesce (Nickname, FirstName, 'Mr./Mrs.') || ' ' || LastName
as FullName
from Persons


CADENAS

BIT_LENGHT (Valor)

Devuelve la longitud en bits de la cadena de entrada.
Devuelve un INTEGER.

EJEMPLO:

select bit_length('Hello!') from rdb$database

-- Devuelve 48

CHAR_LENGTH (Valor)

Devuelve la longitud en caracteres de la cadena de entrada.
Devuelve un INTEGER.

EJEMPLO:

Select char_length('Hello!') from rdb$database

-- Devuelve 6

OCTET_LENGTH (Valor)

Devuelve la longitud en bytes (octetos) de la cadena de entrada.
Devuelve un INTEGER.

EJEMPLO:

select octet_length('Hello!') from rdb$database

-- Devuelve 6

SUBSTRING (str FROM START [FOR count])

Recupera cualquier secuencia de caracteres de una cadena.

EJEMPLO:

SUBSTRING('FIREBIRD' FROM 2 FOR 1) 'I'
SUBSTRING('FIREBIRD' FROM 2 FOR 2) 'IR'
SUBSTRING('FIREBIRD' FROM 1 FOR 3) 'FIR'

TRIM 

 

([LEADING | TRAILING | BOTH] 

 

 

[char FROM] valor )

Quita los espacios a la derecha (o opcionalmente, otros caracteres)
de la cadena de entrada.
Devuelve : VAR (CHAR)

EJEMPLO:

select trim (' Waste no space ') from rdb$database

-- Devuelve 'Waste no space'

LOWER (Valor)

Convierte una cadena en minusculas.

EJEMPLO:

SELECT codigo,LOWER(Nombre) from usuarios

UPPER (valor)

Convierte una cadena en mayúsculas.

EJEMPLO:

SELECT codigo,Upper(Nombre) from usuarios

OTROS

CAST 

(valor AS tipo dato)

Se usa para convertir un tipo de datos en otro dentro de una instrucción SELECT, por lo general en la cláusula WHERE, para comparar los diferentes tipos de datos.

¡Atención!. Hay diferencias entre los Dialectos 1 y 3 de Firebird. 

EJEMPLO:

SELECT CAST('NOW' AS TIMESTAMP) AS TIME_FINISHED FROM RDB$DATABASE

EXTRACT

(parte FROM ts)

Devuelve una variedad de elementos extraídos mediante la descodificación de los campos de tipo fecha / horaPuede funcionar en los dialectos 1 y 3. 

EJEMPLO:

SELECT 

IRST_NAME ||' '||LAST_NAME AS FULL_NAME, 

EXTRACT(MONTH FROM DATE_OF_BIRTH)||'/'||EXTRACT (DAY FROM DATE_OF_BIRTH) 

AS BIRTHDAY

ROM MEMBERSHIP 

WHERE FIRST_NAME IS NOT NULL AND LAST_NAME IS NOT NULL

SELECT

FIRST_NAME ||' '||LAST_NAME AS FULL_NAME,

EXTRACT(MONTH FROM DATE_OF_BIRTH)||'/'||EXTRACT (DAY FROM DATE_OF_BIRTH)

AS BIRTHDAY

FROM MEMBERSHIP

WHERE FIRST_NAME IS NOT NULL AND LAST_NAME IS NOT NULL

ORDER BY 2;

VARIABLES DEL SISTEMA

CURRENT_CONNECTION

Devuelve el identificador de la conexión en curso.
Devuelve ENTERO

CURRENT_DATE

Devuelve la fecha del sistema.Devuelve TIMESTAMP.

La fecha del sistema que está ejecutando el servidor Firebird. No hay ninguna zona horaria asociada con la fecha actual del sistema.

CURRENT_ROLE

Devuelve el ROL de la conexion en curso. Si no esta activa devuelve NONE.Devuelve VARCHAR(31)

CURRENT_TIME

Establece la precision en se se medira la hora.

La parte fraccionaria de CURRENT_TIME solía ser siempre ".0000", dando una precisión efectiva de 0 decimales. Ahora usted puede especificar una precisión personalizada. El valor predeterminado es aún 0 decimales, es decir, segundo de precisión.

CURRENT_TIMESTAMP

Establece la precision en se se medira la Fecha y Hora.

La parte fraccionaria de CURRENT_TIMESTAMP solía ser siempre ".0000", dando una precisión efectiva de 0 decimales. Ahora usted puede especificar una precisión personalizada. El valor predeterminado es aún 0 decimales, es decir, segundo de precisión.

CURRENT_TRANSACTION

Devulve el identificador de la transacción activa.Devuelve ENTERO

CURRENT_USER

Devuelve el nombre del usuario conectado actualmente. Es totalmente equivalente al usuario.Devuelve VARCHAR(31)

DELETING

Disponible solo en TRIGGERS, Borrando indica si se esta realizando un operacion de borrado en ese momento.

Para uso en acción de múltiples factores desencadenantes. Devuelve BOOLEAN.

INSERTING

Disponible sólo en TRIGGERS, insertando indica si se esta realizando un operacion operación de inserción en ese momento. Para uso en acción de múltiples factores desencadenantes. Devuelve BOOLEAN.

NEW

NEW contiene la nueva versión de un registro de base de datos que acaba de insertar o actualizar. A partir de Firebird 2.0 es de sólo lectura en desencadenadores AFTER.

OLD

OLD contiene la versión existente de un registro de base de datos justo antes de un borrado o actualización. A partir de Firebird 2.0 es de sólo lectura.

'NOW'

'NOW' no es una variable sino una cadena literal. Es, sin embargo, especial en el sentido de que cuando CAST () a una fecha y tipo de tiempo, obtendrá la fecha actual y / o tiempo. La parte fraccionaria de la época solían ser siempre ".0000", dando una precisión eficaz segundos. En Firebird 2.0, la precisión es de 3 decimales, es decir, milésimas de segundo. "Ahora" es entre mayúsculas y minúsculas, y el motor ignora espacios iniciales o finales cuando se lanza. Devuelve CHAR(3).

ROW_COUNT

La variable de contexto ROW_COUNT contiene el número de filas afectadas por la declaración más reciente DML (INSERT, UPDATE, DELETE, SELECT o FETCH) en el gatillo actual, el procedimiento almacenado o bloque de ejecución.

Devuelve ENTERO

SQLCODE

Manejando un bloque WHEN SQLCODE, la variable de contexto SQLCODE contiene el código SQL actual de error. Lo mismo es TRUE en un bloque WHEN ANY si su ejecución fue provocada por un error de SQL, de lo contrario contiene 0. SQLCODE también es 0 en WHEN GDSCODE y WHEN EXCEPTION, así como en cualquier otro lugar en PSQL.

Devuelve ENTERO.

UPDATING

Disponible sólo en triggers, actualizando indica si se esta realizando un operacion de actualizacion en ese momento.

Para uso en acción de múltiples factores desencadenantes.

Devuelve BOOLEAN.

GDSCODE

GDSCODE contiene una representación numérica del código de Firebird actual de error. A partir de Firebird 2.0, el mismo es TRUE en un bloque WHEN ANY si su ejecución fue provocada por un error de Firebird, de lo contrario contiene 0. GDSCODE también es 0 en WHEN SQLCODE y WHEN EXCEPTION, así como en cualquier otro lugar en PSQL.

Devuelve BOOLEAN.


____________________________________________________________________________________ 

FUNCIONES UDF "EXTERNAS" DE FIREBIRD

MATEMATICAS

ABS ( valor )

Devuelve el valor absoluto del campo seleccionado.

ACOS ( valor )

Devuelve el arco coseno del campo seleccionado.

ASIN ( valor )

Devuelve el arco seno del campo seleccionado.

ATAN ( valor )

Devuelve el arco tangente del campo seleccionado.

ATAN2 (x,y )

Devuelve la tangente inversa de las coordenadas especificada en los valores introducidos (x,y).

El resultado viene dado en radianes.

BIN_AND( valor1,valor2 )

Devuelve el resultado de la operación AND en el argumento.

BIN_OR ( valor1,valor2 )

Devuelve el resultado de la operación OR en el argumento.

BIN_XOR ( valor1,valor2 )

Devuelve el resultado de la operación XOR en el argumento.

CEILING ( valor )

Devuelve el menor número entero que es mayor que o igual al valor.

COS ( valor )

Devuelve el coseno del campo seleccionado.

COSH ( valor )

Devuelve el coseno hiperbolico del campo seleccionado.

COT ( valor )

Devuelve la cotangente de un ángulo. El argumento debe ser dado en radianes.

DIV ( valor1,valor2)

Devuelve el resultado de la division de los dos valores introducidos en la funcion.

FLOOR ( valor )

Devuelve el mayor número entero que es menor que o igual al argumento.

LN ( valor )

Devuelve el logarimo natural del valor dado.

LOG ( base,valor )

Devuelve el logaritmo del argumento numero.

La base esta dada por el segundo valor, si no esta definido se calcula en base 10.

LOG10 ( valor )

Devuelve el logaritmo con la base 10 del valor.

MOD ( valor1,valor2)

Devuelve el resto de una división de enteros.

PI

Devuelve el numero pi.

RAND ( valor )

Devuelve un valor aleatorio.

SIGN ( valor )

Devuelve el signo del valor. Mostrando 0 o 1 segun el signo.

SIN ( valor )

Devuelve el seno trigonometrico del angulo dado en radianes, en una expresion float numerica aproximada.

SINH ( valor )

Devuelve el seno hiperbolico del angulo dado en radianes. 

SQRT ( valor )