Funciones FIREBIRD



FUNCIONES INTERNAS DE FIREBIRD

AGRUPAMIENTOS Y SUMAS
ABS ( EXPRESION ) DESCRIPCION: Devuelve el valor absoluto de un campo dado.
TIPO RESULTADO: Numerico
EJEMPLO: 
Select ABS(valor) from TABLA
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 2.1
COUNT ( CAMPO )

DESCRIPCION: Devuelve el número 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 ( EXPRESION ) DESCRIPCION: Delvuelve el promedio de los valores del campo seleccionado.
EJEMPLO:
Select cod_cliente,avg(ventas) from CLIENTES
MIN ( EXPRESION ) DESCRIPCION: Devuelve el valor mas bajo del campo seleccionado.
TIPO RESULTADO: Varía
EJEMPLO:
Select codigo,min(pvp) from ARTICULOS

FUNCIONAL EN: DSQL, ESQL, PSQL
AÑADIDA EN: IB
MODIFICADA EN: Versión Firebird 2.1

MAX ( EXPRESION ) DESCRIPCION: Devuelve el valor mas alto del campo seleccionado.
TIPO RESULTADO: Varía
EJEMPLO:
Select cod_cliente,max(ventas) from CLIENTES

FUNCIONAL EN: DSQL, ESQL, PSQL
AÑADIDA EN: IB
MODIFICADA EN: Versión Firebird 2.1

SUM( campo ) DESCRIPCION: Devuelve la suma de los valores del campo seleccionado.
EJEMPLO:
Select cod_cliente,sum(ventas) from ARTICULOS
CONDICIONALES
CASE
WHEN condición
then resultado [WHEN...]
[ELSE resultado] END
DESCRIPCION: Devuelve un valor de un número de posibilidades.
CASE SIMPLE.
EJEMPLO:
Select name,
       edat,
       case upper(sexo)
         when 'H' then 'Hombre'
         when 'm' then 'Mujer'
         else 'Unknown'
       end,
       religion
from personas
CASE condición
WHEN valor
THEN resultado
[WHEN ...]
[ELSE resultado] END
DESCRIPCION: Devuelve un valor de un número de posibilidades.
CASE CONDICIONAL.
EJEMPLO:

CanVote = case
            when Age >= 18 then 'Yes'
            when Age <  18 then 'No'
            else 'Unsure'
          end;

COALESCE ( , [, ... ])

DESCRIPCION: 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 comoNULL, se devuelve NULL.
TIPO RESULTADO: Depende de la entrada
EJEMPLO:

select 
coalesce (Nickname, FirstName, 'Mr./Mrs.') || ' ' || LastName as FullName from Persons
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 1.5

CADENAS

BIT_LENGHT (STR)

DESCRIPCION: Devuelve la longitud en bits de la cadena de entrada.
TIPO RESULTADO: Integer
EJEMPLO:

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

-- Devuelve 48
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 2.0
MODIFICADA EN: Versión Firebird 2.1
CHAR_LENGTH (STR) DESCRIPCION: Devuelve la longitud de caracteres de la cadena de entrada.
TIPO RESULTADO: Integer
EJEMPLO:
Select char_length('Hello!') from rdb$database

-- Devuelve 6
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 2.0
MODIFICADA EN: Versión Firebird 2.1

OCTET_LENGTH (STR)

DESCRIPCION: Devuelve la longitud en bytes (octetos) de la cadena de entrada.
TIPO RESULTADO: Integer
EJEMPLO:

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

-- Devuelve 6
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 2.0
MODIFICADA EN: Versión Firebird 2.1

SUBSTRING(str FROM startpos [FOR length])


DESCRIPCION: Recupera cualquier secuencia de caracteres de una cadena.
TIPO RESULTADO: VARCHAR (n) o BLOB
EJEMPLO:

SUBSTRING('FIREBIRD' FROM 2 FOR 1) 'I'
SUBSTRING('FIREBIRD' FROM 2 FOR 2) 'IR'
SUBSTRING('FIREBIRD' FROM 1 FOR 3) 'FIR'
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 1.0
MODIFICADA EN: Versión Firebird 2.0 y 2.1

TRIM ([str)
 ::= {[where] [what]} FROM
where ::= BOTH | LEADING | TRAILING /* default is BOTH */
what ::= The substring to be removed (repeatedly if necessary)
from str's head and/or tail. Default is ' ' (space).

DESCRIPCION: Quita los espacios a la derecha (opcionalmente, otros caracteres) de la cadena de entrada.
TIPO RESULTADO: VARCHAR (n) o BLOB
EJEMPLO:

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

-- Devuelve 'Waste no space'
FUNCIONAL EN: DSQL, PSQL  AGREGADA EN: Versión Firebird 2.0 MODIFICADA EN: Versión Firebird 2.1

 

LOWER ( STR )

DESCRIPCION: Convierte una cadena en minusculas.
TIPO DE RESULTADO: (VAR) CHAR o BLOB
EJEMPLO:

SELECT codigo,LOWER(Nombre) from usuarios

FUNCIONAL EN: DSQL, ESQL, PSQL 
AGREGADA EN: Versión Firebird 2.0
MODIFICADA EN: Versión Firebird 2.1

UPPER (STR)

DESCRIPCION: Convierte una cadena en mayúsculas.
TIPO DE RESULTADO: (VAR) CHAR o BLOB
EJEMPLO:

SELECT codigo,Upper(Nombre) from usuarios

FUNCIONAL EN: DSQL, ESQL, PSQL 
AGREGADA EN: IB
MODIFICADA EN: Versión Firebird 2.0 y 2.1

OTROS

CAST ( expression AS { datatype | [TYPE OF] domain })

DESCRIPCION: 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. 
TIPO RESULTADO: El elegido por el usuario.
EJEMPLO:

SELECT CAST('NOW' AS TIMESTAMP) AS TIME_FINISHED FROM RDB$DATABASE
FUNCIONAL EN: DSQL, ESQL, PSQL 
AGREGADA EN: IB
MODIFICADA EN: Versión Firebird 2.0 y 2.1

EXTRACT ( FROM )
  ::= YEAR | MONTH | WEEK | DAY |      WEEKDAY | YEARDAY | HOUR | MINUTE |  SECOND | MILLISECOND
  ::= a DATE, TIME or TIMESTAMP  expression 


DESCRIPCION: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.
TIPO RESULTADO: smallint o numérico
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;
FUNCIONAL EN: DSQL, ESQL, PSQL 
AGREGADA EN: IB 6
MODIFICADA EN: Versión Firebird 2.1

VARIABLES DEL SISTEMA

CURRENT_CONNECTION

DESCRIPCION: Devuelve el identificador de la conexión en curso.
TIPO RESULTADO: Integer
EJEMPLO: 

select current_connection from rdb$database 

execute procedure P_Login(current_connection)
FUNCIONAL EN: DSQL, PSQL
AGREGADA EN:
 Versión Firebird 1.5
MODIFICADA EN: Versión Firebird 2.1

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

DESCRIPCION: Devuelve el ROL de la conexion en curso. Si no esta activa devuelve NONE.
TIPO RESULTADO: Devuelve VARCHAR(31)
EJEMPLO: 

if (current_role <> 'MANAGER') then exception only_managers_may_delete; else delete from Customers where custno = :custno; 
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 1.0
CURRENT_TIME [( precision )] 
precision ::= 0 | 1 | 2 | 3 

DESCRIPCION: Establece la precision en se se medirá la hora.
NOTA: 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.
TIPO RESULTADO: Time
EJEMPLO: 

select current_time from rdb$database -- returns e.g. 14:20:19.6170

select current_time(2) from rdb$database -- returns e.g. 14:20:23.1200

 

FUNCIONAL EN: DSQL, PSQL , ESQL
MODIFICADA EN: Versión Firebird 2.0

CURRENT_TIMESTAMP [( precision )] 
precision ::= 0 | 1 | 2 | 3 

DESCRIPCION: Establece la precision en se se medira la Fecha y Hora.
NOTA: 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.
TIPO RESULTADO: TIMESTAMP
EJEMPLO: 

select current_timestamp from rdb$database -- returns e.g. 2008-08-13 14:20:19.6170

select current_timestamp(2) from rdb$database -- returns e.g. 2008-08-13 14:20:23.1200
FUNCIONAL EN: DSQL, PSQL , ESQL
MODIFICADA EN: Versión Firebird 2.0

CURRENT_TRANSACTION

DESCRIPCION: Devulve el identificador de la transacción activa.
TIPO RESULTADO: Integer
EJEMPLO: 

select current_transaction from rdb$database

New.Txn_ID = current_transaction;
FUNCIONAL EN: DSQL, PSQL 
MODIFICADA EN: Versión Firebird 2.5

CURRENT_USER

DESCRIPCION: Devuelve el nombre del usuario conectado actualmente. Es totalmente equivalente al usuario.
TIPO RESULTADO: VARCHAR(31)
EJEMPLO: 

create trigger bi_customers for customers before insert as begin New.added_by = CURRENT_USER; New.purchases = 0; end

FUNCIONAL EN: DSQL, PSQL 
MODIFICADA EN: Versión Firebird 1.0

DELETING

DESCRIPCION: 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. TIPO TIPO RESULTADO: BOOLEAN.
EJEMPLO: 

if (deleting) then begin insert into Removed_Cars (id, make, model, removed) values (old.id, old.make, old.model, current_timestamp); end
FUNCIONAL EN: PSQL 
AGREGADA EN: Versión Firebird 1.5

INSERTING

DESCRIPCION: 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.
TIPO RESULTADO: BOOLEAN.
EJEMPLO: 

if (inserting or updating) then begin if (new.serial_num is null) then new.serial_num = gen_id(gen_serials, 1); end
FUNCIONAL EN: PSQL 
AGREGADA EN: Versión Firebird 1.5

NEW

DESCRIPCION: 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 desencadenador es AFTER.
TIPO RESULTADO: Data row
FUNCIONAL EN: PSQL, triggers only 
MODIFICADA EN: Versión Firebird 1.5 y 2.0

OLD

DESCRIPCION: 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.
TIPO RESULTADO: Data row
FUNCIONAL EN: PSQL, triggers only 
MODIFICADA EN: Versión Firebird 1.5 y 2.0

'NOW'

DESCRIPCION: '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.
TIPO RESULTADO: CHAR(3).
EJEMPLO: 

select 'Now' from rdb$database -- returns 'Now'

select cast('Now' as date) from rdb$database -- returns e.g. 2008-08-13

select cast('now' as time) from rdb$database -- returns e.g. 14:20:19.6170

select cast('NOW' as timestamp) from rdb$database -- returns e.g. 2008-08-13 14:20:19.6170
FUNCIONAL EN: DSQL, PSQL , ESQL
MODIFICADA EN: Versión Firebird 2.0

ROW_COUNT

DESCRIPCION: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.
TIPO RESULTADO: INTEGER
EJEMPLO:

update Figures set Number = 0 where id = :id; if (row_count = 0) then insert into Figures (id, Number) values (:id, 0);
FUNCIONAL EN: PSQL 
AGREGADA EN: Versión Firebird 1.5
MODIFICADA EN: Versión Firebird 2.0

SQLCODE

DESCRIPCION: 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.
TIPO RESULTADO: INTEGER
EJEMPLO:

when any do begin if (sqlcode <> 0) then Msg = 'An SQL error occurred!'; else Msg = 'Something bad happened!'; exception ex_custom Msg; end
FUNCIONAL EN: PSQL 
AGREGADA EN: Versión Firebird 1.5

 

UPDATING

DESCRIPCION: 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.
TIPO RESULTADO: BOOLEAN
EJEMPLO:

if (inserting or updating) then begin if (new.serial_num is null) then new.serial_num = gen_id(gen_serials, 1); end

FUNCIONAL EN: PSQL
AGREGADA EN: Versión Firebird 1.5

GDSCODE

DESCRIPCION: 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.

TIPO RESULTADO: INTEGER
EJEMPLO:

when gdscode 335544551, gdscode 335544552, gdscode 335544553, gdscode 335544707 do begin execute procedure log_grant_error(gdscode); exit; end
FUNCIONAL EN: PSQL 
AGREGADA EN: Versión Firebird 1.5
MODIFICADA EN: Versión Firebird 2.0

____________________________________________________________________________________

FUNCIONES UDF "EXTERNAS" DE FIREBIRD

MATEMATICAS

 

ABS (number )

DESCRIPCION: Devuelve el valor absoluto del campo seleccionado.
NOTA: Versión de Funcion Interna a partir de la version 2.1

ACOS (number )

DESCRIPCION: Devuelve el arco coseno del campo seleccionado.
TIPO RESULTADO: DOUBLE PRECISION
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 2.1

ASIN ( number )

DESCRIPCION: Devuelve el arco seno del campo seleccionado.
TIPO RESULTADO: DOUBLE PRECISION
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 2.1

ATAN ( number )

DESCRIPCION: Devuelve el arco tangente del campo seleccionado.
TIPO RESULTADO: DOUBLE PRECISION
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 2.1

ATAN2 (x,y )

DESCRIPCION: Devuelve la tangente inversa de las coordenadas especificada en los valores introducidos (x,y). El resultado viene dado en radianes.
TIPO RESULTADO: DOUBLE PRECISION
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 2.1

BIN_AND ( number [, number ...])

DESCRIPCION: Devuelve el resultado de la operación AND en el argumento.
TIPO RESULTADO: INTEGER OR BIGINT
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 2.1

BIN_OR ( number [, number ...])

DESCRIPCION: Devuelve el resultado de la operación OR en el argumento.
TIPO RESULTADO: INTEGER O BIGINT
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 2.1

BIN_XOR ( number [, number ...])

DESCRIPCION: Devuelve el resultado de la operación XOR en el argumento.
TIPO RESULTADO: INTEGER OR BIGINT
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 2.1

CEIL[ING] ( number )

DESCRIPCION: Devuelve el menor número entero que es mayor que o igual al valor.
TIPO RESULTADO: BIGINT OR DOUBLE PRECISION
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 2.1

COS ( angle )

DESCRIPCION: Devuelve el coseno del campo seleccionado.
TIPO RESULTADO: DOUBLE PRECISION
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 2.1

COSH ( number )

DESCRIPCION: Devuelve el coseno hiperbolico del campo seleccionado.
TIPO RESULTADO: DOUBLE PRECISION
FUNCIONAL EN: DSQL, PSQL 
AGREGADA EN: Versión Firebird 2.1

COT ( angle )

DESCRIPCION: Devuelve la cotangente de un ángulo. El argumento debe ser dado en radianes.
TIPO RESULTADO: DOUBLE PRECISION
Espacio disponible para publicidad
Contacte con nosotros para más información