ABS()

Версии сервера

0.91.01.5.31.5.41.5.52.02.12.53.0
Как UDFДаДаДаДаДаДа---
Как встроенная функция------ДаДаДа

Доступно в

DSQL, ISQL, PSQL

Формат

ABS( < аргумент > )
АргументОписание
< аргумент >Любой тип данных, приводимый к DOUBLE PRECISION
ВозвращаетDOUBLE PRECISION

Описание

Функция ABS возвращает абсолютное значение числа, переданного в качестве параметра < аргумент >.

⚠️ В Firebird версии младше 2.1 для того, чтобы пользоваться этой функцией, ее небходимо подключить к базе данных как UDF.

Объявление

  1. В Firebird версии младше 2.1 функция объявляется как UDF в внешнем модуле “ib_udf”.
DECLARE EXTERNAL FUNCTION ABS
  DOUBLE PRECISION
RETURNS
  DOUBLE PRECISION BY VALUE
ENTRY_POINT "IB_UDF_abs" MODULE_NAME "ib_udf";
  1. В Firebird версии 2.1 и старше является встроенной функцией при соглашении объявления ее как:
DECLARE EXTERNAL FUNCTION ABS
  DOUBLE PRECISION
RETURNS
  DOUBLE PRECISION BY VALUE
ENTRY_POINT "IB_UDF_abs" MODULE_NAME SYSTEM;

Пример

Допустим, существует таблица CUSTOMERS с доменами ID INTEGER и AMOUNT DOUBLE PRECISION, который может быть отрицательным.

Требуется выбрать из таблицы все записи, указав абсолютное значение домена AMOUNT.

  1. DSQL, ISQL
SELECT ABS(C.AMOUNT)
FROM   CUSTOMERS C
  1. PSQL
SET TERM !!!;

CREATE OR ALTER PROCEDURE CUST_AMOUNT RETURNS (
   CUST_ID INTEGER
  ,AMOUNT  DOUBLE PRECISION
)AS
BEGIN
  FOR
    SELECT C.ID, C.AMOUNT
    FROM   CUSTOMERS C
    INTO   :CUST_ID, :AMOUNT
  DO
    BEGIN
    AMOUNT = ABS(:AMOUNT);
    SUSPEND;
    END
END !!!

SET TERM ; !!!

См. также

UDF, Встроенные функции

Источник

langref.pdf

Обсуждение