FreeAdhocUDF für InterBase und FireBird in deutschin englishen françaisen españolin italianoa português
homeprevious pageÜbersicht • overview • aperçunext pagelast page Seite empfehlen • advice website • Mailing-Liste • mailinglist • liste de diffusionwas ich vermisse • what I missed •eMail Kommentar • eMail commentprintsitemap
Numerische-Funktionen 72 Funktionen
Erzeugen 4 Funktion
Formatieren 11 Funktionen
Berechnen 20 Funktionen
Vergleichen 4 Funktionen
Binär 8 Funktionen
Trigonometrie 25 Funktionen
ab FireBird Version 2.1 kann diese Funktion ersetzt werden
Output RETURN Mechanismus wenn nicht anderes angegeben: FREE_IT
Die TestSQLs mit NULL funktionieren nur ab FireBird 2
 
Numerische-Funktionen: Erzeugen
F_RAND Parameter- und Ergebnis-kompatibel zu ib_udf
ersetzbar durch RAND
Entrypoint f_rand
Input ohne

Output DOUBLE Komma-Zufallszahl im Bereich zwischen 0 und 1
Funktion erzeugt in einer Sekunde auch mehrere unterschiedliche Zufallszahlen.
Durch Initialiserung des Generators mit der aktuellen Systemzeit und der ProzessID ist es ausgeschlossen, dass zwei Aufrufe innerhalb einer Sekunde die gleiche Zufallszahl liefern.
TestSQL
SELECT F_RAND() FROM RDB$DATABASE;
nach oben • go top •
F_INTRANDOM Funktion von adhoc
Entrypoint intrandom
Input INTEGER
INTEGER
min. Größe der Zufallszahl
max. Größe der Zufallszahl
Output INTEGER Integer-Zufallszahl im Bereich zwischen Parameter 1 und Parameter 2
Funktion erzeugt in einer Sekunde auch mehrere unterschiedliche Zufallszahlen.
Durch Initialiserung des Generators mit der aktuellen Systemzeit und der ProzessID ist es ausgeschlossen, dass zwei Aufrufe innerhalb einer Sekunde die gleiche Zufallszahl liefern.
TestSQL
SELECT F_INTRANDOM(100, 10000) FROM RDB$DATABASE;
SELECT F_INTRANDOM(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_GETRANDOM Input/Output-kompatibel zu rFunc (GETRANDOM)
Entrypoint getrandom
Input INTEGER
max. Größe der Zufallszahl
Output INTEGER Integer-Zufallszahl im Bereich zwischen 0 und Parameter 1
Funktion erzeugt in einer Sekunde auch mehrere unterschiedliche Zufallszahlen.
Durch Initialiserung des Generators mit der aktuellen Systemzeit und der ProzessID ist es ausgeschlossen, dass zwei Aufrufe innerhalb einer Sekunde die gleiche Zufallszahl liefern.
TestSQL
SELECT F_GETRANDOM(10000) FROM RDB$DATABASE;
SELECT F_GETRANDOM(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DOUBLERANDOM Funktion von adhoc
Entrypoint doublerandom
Input INTEGER
INTEGER
min. Größe der Zufallszahl
max. Größe der Zufallszahl
Output DOUBLE Komma-Zufallszahl im Bereich zwischen Parameter 1 und Parameter 2
Funktion erzeugt in einer Sekunde auch mehrere unterschiedliche Zufallszahlen.
Durch Initialiserung des Generators mit der aktuellen Systemzeit und der ProzessID ist es ausgeschlossen, dass zwei Aufrufe innerhalb einer Sekunde die gleiche Zufallszahl liefern.
TestSQL
SELECT F_DOUBLERANDOM(100, 10000) FROM RDB$DATABASE;
SELECT F_DOUBLERANDOM(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
 
Numerische-Funktionen: Formatieren
F_ROUND Input/Output-kompatibel zu FreeUDFLibC
Entrypoint f_round
Input DOUBLE auf Ganzahl zu rundende Flieskommazahl
Output INTEGER auf einen ganzahligen Wert gerundete Flieskommazahl
Es wird  kaufmännisch gerundet wie bei F_ZAHLRUNDEN.
Wegen gleichlautender C-Funktion mußte der Entrypoint von round auf f_round geändert werden. Darum jetzt KEINE Entrypoint-Kopatibilität mehr zur FreeUDFLibC.
TestSQL
SELECT 16 AS ISCORRECT, F_ROUND(15.567) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ROUND(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ROUNDFLOAT kompatibel zu FreeUDFLib, FreeUDFLib AvERP
Entrypoint roundfloat
Input DOUBLE
DOUBLE
zu rundende Flieskommazahl
Pattern, wie Flieskommazahl aussehen soll (z.B. 0.01); rundet auf das nächste Vielfache des 2. Parameters
Output DOUBLE gerundete Flieskommazahl im Stil von Parameter 2
TestSQL
SELECT 15.55 AS ISCORRECT, F_ROUNDFLOAT(15.567, 0.05) FROM RDB$DATABASE;
SELECT 15.56 AS ISCORRECT, F_ROUNDFLOAT(15.567, 0.02) FROM RDB$DATABASE;
SELECT 15.57 AS ISCORRECT, F_ROUNDFLOAT(15.567, 0.01) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ROUNDFLOAT(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ZAHLRUNDEN
F_ROUNDCOMMON
kompatibel zu FreeUDFLib AvERP, GrUDF
Input/Output-kompatibel zu rFunc (ROUND)
ersetzbar durch ROUND
Entrypoint zahlrunden
Input DOUBLE
INTEGER
zur rundender Wert
Anzahl der Stellen, auf die kaufmännisch gerundet werden soll
Output DOUBLE auf Parameter 2 -Stellen kaufmännisch gerundete Flieskommazahl
Kaufmännisches Runden (aus Wikipedia http://de.wikipedia.org/wiki/Runden):
Ist die Ziffer an der ersten wegfallenden Dezimalstelle (im Beispiel hier unten die dritte Nachkommastelle) nicht größer als eine 4, wird abgerundet. Anderenfalls wird aufgerundet. Die folgenden Nachkommastellen werden nicht berücksichtigt.
    * aus 2,1349... € wird 2,13 €
    * aus 2,1350... € wird 2,14 €
Negative Zahlen werden nach ihrem Betrag gerundet, bei einer 5 also weg von Null:
    * aus −2,1349... € wird −2,13 €
    * aus −2,1350... € wird −2,14 €
TestSQL
SELECT 14.5 AS ISCORRECT, F_ZAHLRUNDEN(14.4935, 1) FROM RDB$DATABASE;
SELECT 14.49 AS ISCORRECT, F_ZAHLRUNDEN(14.4935, 2) FROM RDB$DATABASE;
SELECT 14.494 AS ISCORRECT, F_ZAHLRUNDEN(14.4935, 3) FROM RDB$DATABASE;
SELECT -14.494 AS ISCORRECT, F_ZAHLRUNDEN(-14.4935, 3) FROM RDB$DATABASE;
SELECT 14.494 AS ISCORRECT, F_ZAHLRUNDEN(14.4936, 3) FROM RDB$DATABASE;
SELECT 14.4935 AS ISCORRECT, F_ZAHLRUNDEN(14.4935, 6) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ZAHLRUNDEN(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ROUNDTOEVEN Funktion von adhoc
Entrypoint roundtoeven
Input DOUBLE
INTEGER
zur rundender Wert
Anzahl der Stellen, auf die unverzerrt gerundet werden soll
Output DOUBLE auf Parameter 2 -Stellen gerundete Flieskommazahl nach "Banker"-Regeln
Unverzerrte Rundung (aus Wikipedia http://de.wikipedia.org/wiki/Runden):
Kaufmännisches und unverzerrtes Runden unterscheiden sich nur darin, wohin eine Zahl genau in der Mitte zwischen zwei Zahlen mit der gewählten Anzahl von Dezimalziffern gerundet wird.
Das kaufmännische Runden erzeugt kleine statistische Fehler, da das Aufrunden um 0,5 vorkommt, das Abrunden um 0,5 jedoch nie; das kann Statistiken geringfügig verzerren. Außerdem ist das Verhalten bei positiven und negativen Zahlen unterschiedlich, wenn die zu rundende Ziffer eine 5 ist.
Es gibt ein Verfahren, das diese Probleme vermeidet, die unverzerrte Rundung (englisch round to even). Es rundet von der genauen Mitte zwischen zwei Ziffern immer zur nächsten geraden Zahl auf oder ab. Ansonsten entspricht es dem kaufmännischen Verfahren:
    * aus 2,33 wird 2,3
    * aus 2,35 wird 2,4
    * aus 2,45 (exakt) wird 2,4
    * aus 2,4500001 wird 2,5
    * aus 2,47 wird 2,5
    * aus 2,53 wird 2,5
    * aus 2,55 wird 2,6
Negative Zahlen werden nach ihrem Betrag gerundet:
    * aus −2,35 wird −2,4
    * aus −2,45 (exakt) wird −2,4
    * aus −2,4500001 wird −2,5
    * aus −2,46 wird −2,5
    * aus −2,449 wird −2,5
Diese Art der Rundung ist bei Logarithmentafeln, im Vermessungswesen, in der Statistik und bei Banken üblich.
TestSQL
SELECT 3.02 AS ISCORRECT, F_ROUNDTOEVEN(3.016, 2) FROM RDB$DATABASE;
SELECT 3.01 AS ISCORRECT, F_ROUNDTOEVEN(3.013, 2) FROM RDB$DATABASE;
SELECT 3.02 AS ISCORRECT, F_ROUNDTOEVEN(3.015, 2) FROM RDB$DATABASE;
SELECT 3.04 AS ISCORRECT, F_ROUNDTOEVEN(3.045, 2) FROM RDB$DATABASE;
SELECT 3.05 AS ISCORRECT, F_ROUNDTOEVEN(3.04501, 2) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ROUNDTOEVEN(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_SOFTROUND Input/Output-kompatibel zu rfunc (SOFTROUND)
Entrypoint softround
Input DOUBLE
INTEGER
auf Ganzahl zu rundende Flieskommazahl
Stelle, auf die gerundet werden soll
Output INTEGER auf einen ganzahligen Wert gerundete Flieskommazahl
Es wird  kaufmännisch gerundet wie bei F_ZAHLRUNDEN.
Wenn das Ergebnis des Rundens 0 wäre, wird statt dessen der ungerundete Wert zurückgegeben.
TestSQL
SELECT 0.0016 AS ISCORRECT, F_SOFTROUND(0.0016, 2), F_ZAHLRUNDEN(0.0016, 2) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_SOFTROUND(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_FIXEDPOINT kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP
Entrypoint fixedpoint
Input DOUBLE
INTEGER
zu rundende Flieskommazahl
Anzahl Stellen, auf die gerundet werden soll
Output CSTRING(32) Flieskommazahl gerundet auf die Anzahl der Stellen Parameter 2
Im Unterschied zu F_ZAHLRUNDEN ist hier das Ergebnis ein String!
Es wird "amerikanisch"  gerundet, also wie F_ROUNDTOEVEN!
In der String-Ausgabe ist das Dezimal-Trennzeichen ein “.”!
TestSQL
SELECT '12345.5' AS ISCORRECT, F_FIXEDPOINT(12345.46, 1) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_FIXEDPOINT(NULL, NULL) FROM RDB$DATABASE;   
nach oben • go top •
F_FIXEDPOINTLANG Funktion von adhoc
Entrypoint fixedpointlang
Input DOUBLE
INTEGER
CSTRING(1)
CSTRING(1)
zu rundende Flieskommazahl
Anzahl Stellen, auf die gerundet werden soll
Zeichen für Dezimaltrennung
Zeichen für Tausendertrennung
Output CSTRING(32) Flieskommazahl auf Anzahl der Stellen von Parameter 2 mit definierbaren Dezimal-  und Tausender-Trennzeichen
Es wird  kaufmännisch gerundet wie bei F_ZAHLRUNDEN.
TestSQL
SELECT '12.345,5' AS ISCORRECT, F_FIXEDPOINTLANG(12345.46, 1, ',', '.') FROM RDB$DATABASE;
SELECT '12.345' AS ISCORRECT, F_FIXEDPOINTLANG(12345.46, 0, ',', '.') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_FIXEDPOINTLANG(NULL, NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_TRUNCATE kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
ersetzbar durch TRUNC
Entrypoint f_truncate
Input DOUBLE abzuschneidende Flieskommazahl
Output INTEGER Flieskommazahl mit abgeschnittenen Nachkommastellen
TestSQL
SELECT 15 AS ISCORRECT, F_TRUNCATE(15.567) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_TRUNCATE(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DOLLARVAL
F_CONVERTTODOLLAR
kompatibel zu FreeUDFLib, FreeUDFLib AvERP
kompatibel zu FreeUDFLibC
Entrypoint dollarval
Input DOUBLE Flieskommawert
Output CSTRING(32) Dollar-Zahlenwert ($ vor der Zahl) (gerundet auf 2 Nachkommastellen)
TestSQL
SELECT '$15.68' AS ISCORRECT, F_CONVERTTODOLLAR(15.678) FROM RDB$DATABASE;
SELECT '$15.68' AS ISCORRECT, F_DOLLARVAL(15.678) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_DOLLARVAL(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_EUROVAL Funktion von adhoc
Entrypoint euroval
Input DOUBLE Flieskommawert
Output CSTRING(32) EURO-Zahlenwert (EUR nach der Zahl) (gerundet auf 2 Nachkommastellen)
SELECT '15.47 EUR' AS ISCORRECT, F_EUROVAL(15.47) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_EUROVAL(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_NUMINWORDS Funktion von adhoc
Entrypoint numinwords
Input DOUBLE Flieskommawert
SMALLINT Anzahl der gewünschten Nachkommastellen (keine Rundung!)
CSTRING(2) Sprachkennzeichen für die Ausgabe
Output CSTRING(32) Flieskommazahl in Wörtern in der gewählten Sprache
Sprachkennzeichen: uk = englisch, de = deutsch, fr = französich, it = italienisch, es = spanisch, pt = portugisisch,
nl = niederländisch, no = norwegisch Bokmål, se = schwedisch, dk = dänisch, fi = finnisch, hu = ungarisch, ie = irisch(es gälisch),
ee = estnisch, is = isländisch, al = albanisch, va = lateinisch, v1 = kirchlisches lateinisch, c1 = katalanisch, s1 = schottisch,
s2 = schottisches gälisch, w1 = walisich, b1 = bretonisch, b2 = baskisch, n1 = norwegisch Nynorsk, za = afrikaans,
fo = faörisch, lu = luxembourgisch, w2 = wallonisch
TestSQL
SELECT '***eins-vier-fünf***' AS ISCORRECT, F_NUMINWORDS(145, 0, 'de') FROM RDB$DATABASE;
SELECT '***eins-vier-fünf-Komma-drei-zwei***' AS ISCORRECT, F_NUMINWORDS(145.32, 2, 'de') FROM RDB$DATABASE;
SELECT '***eins-vier-fünf-Komma-drei-zwei-null-null***' AS ISCORRECT, F_NUMINWORDS(145.32, 4, 'de') FROM RDB$DATABASE;
SELECT '***one-four-five-point-three-two***' AS ISCORRECT, F_NUMINWORDS(145.32, 2, 'uk') FROM RDB$DATABASE;
SELECT '***un-quatre-cinq-virgule-trois-deux***' AS ISCORRECT, F_NUMINWORDS(145.32, 2, 'fr') FROM RDB$DATABASE;
SELECT '***uno-cuatro-cinco-coma-tres-dos***' AS ISCORRECT, F_NUMINWORDS(145.32, 2, 'es') FROM RDB$DATABASE;
SELECT '***uno-quattro-cinque-virgola-tre-due***' AS ISCORRECT, F_NUMINWORDS(145.32, 2, 'it') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_NUMINWORDS(NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
 
Numerische-Funktionen: Berechnen
F_DOUBLEABS
F_ABS
kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP
kompatibel zu GrUDF
Input/Output-kompatibel zu rFunc (ABS)
ersetzbar durch ABS
Entrypoint doubleabs
Input DOUBLE zu berechnenden Flieskommazahl
Output DOUBLE Absolutwert (positiver Wert) einer Flieskommazahl
TestSQL
SELECT 15.678 AS ISCORRECT, F_DOUBLEABS(15.678) FROM RDB$DATABASE;
SELECT 15.678 AS ISCORRECT, F_DOUBLEABS(-15.678) FROM RDB$DATABASE;
SELECT 15.678 AS ISCORRECT, F_ABS(15.678) FROM RDB$DATABASE;
SELECT 15.678 AS ISCORRECT, F_ABS(-15.678) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ABS(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_INTEGERABS kompatibel zu FreeUDFLibC
ersetzbar durch ABS
Entrypoint integerabs
Input INTEGER zu berechnenden Ganzzahl
Output INTEGER Absolutwert (positiver Wert) einer Ganzzahl
TestSQL
SELECT 15 AS ISCORRECT, F_INTEGERABS(15) FROM RDB$DATABASE;
SELECT 15 AS ISCORRECT, F_INTEGERABS(-15) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_INTEGERABS(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_POWER Input/Output-kompatibel zu fbudf (POWER)
Input/Output-kompatibel zu rFunc (POWER)
ersetzbar durch POWER
Entrypoint f_power
Input DOUBLE
Zahl die quadriert werden soll
DOUBLE Hochzahl
Output DOUBLE Quadratzahl der Zahl von Parameter 1 hoch Parameter 2
TestSQL
SELECT 8.0 AS ISCORRECT, F_POWER(2, 3) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_POWER(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_EXP kompatibel zu GrUDF
Input/Output-kompatibel zu rFunc (EXP) 
ersetzbar durch EXP
Entrypoint f_exp
Input DOUBLE
Kommazahl
Output DOUBLE e hoch Kommazahl
TestSQL
SELECT 7.38905609893065 AS ISCORRECT, F_EXP(2), F_POWER(F_E(), 2) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_EXP(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_SQRT kompatibel zu GrUDF 
Input/Output-kompatibel zu udflib, ib_udf
Input/Output-kompatibel zu rFunc (SQRT)
ersetzbar durch SQRT
Entrypoint f_sqrt
Input DOUBLE
Zahl aus der die Quadratwurzel gezogen werden soll
Output DOUBLE Quadratwurzel der Zahl
TestSQL
SELECT 3 AS ISCORRECT, F_SQRT(9) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_SQRT(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_FACT
F_FACTORIAL
Funktion von adhoc
kompatibel zu GrUDF
Entrypoint fact
Input INTEGER Ganzzahl, von der die Fakultät gebildet werden soll
Output DOUBLE Fakultät (das Produkt aller natürlichen Zahlen von 1 bis zum Argument)
TestSQL
SELECT 6.000 AS ISCORRECT, F_FACT(3) FROM RDB$DATABASE;
SELECT 6.000 AS ISCORRECT, F_FACTORIAL(3) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_FACT(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_MODULO kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Input/Output-kompatibel zu rFunc (MOD)
ersetzbar durch MODULO
Entrypoint modulo
Input INTEGER
INTEGER
Divident (die Zahl, die geteilt wird)
Divisor (die Zahl, durch die geteilt wird)
Output INTEGER Modulo (Rest aus der Division zweier Ganzzahlen) von Parameter 1 dividiert durch Parameter 2
TestSQL
SELECT 2 AS ISCORRECT, F_MODULO(5, 3) FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_MODULO(6, 3) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_MODULO(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DIV Input/Output-kompatibel zu rfunc (DIV)
Entrypoint r_div
Input INTEGER
INTEGER
Divident (die Zahl, die geteilt wird)
Divisor (die Zahl, durch die geteilt wird)
Output INTEGER Ganzzahliger Anteil von Parameter 1 dividiert durch Parameter 2
TestSQL
SELECT 1 AS ISCORRECT, F_DIV(5, 3) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_DIV(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_FLOOR Input/Output-kompatibel zu ib_udf
Input/Output-kompatibel zu rFunc (FLOOR)
ersetzbar durch FLOOR
Entrypoint f_floor
Input DOUBLE
Kommazahl
Output DOUBLE die größte Ganzzahl, die kleiner oder gleich dem Input ist als Kommazahl
Man beachte die Unterschiede zu F_CEILING und F_TRUNCATE
TestSQL
SELECT 3.0 AS ISCORRECT, F_FLOOR(3.85), F_CEILING(3.85),F_TRUNCATE(3.85) FROM RDB$DATABASE;
SELECT -4.0 AS ISCORRECT, F_FLOOR(-3.85), F_CEILING(-3.85),F_TRUNCATE(-3.85) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_FLOOR(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CEILING Input/Output-kompatibel zu ib_udf
Input/Output-kompatibel zu rFunc (CEIL)
ersetzbar durch CEILING
Entrypoint f_ceiling
Input DOUBLE
Kommazahl
Output DOUBLE die kleinste Ganzzahl, die größer oder gleich dem Input ist als Kommazahl
Man beachte die Unterschiede zu F_CEILING und F_TRUNCATE
TestSQL
s. F_FLOOR
SELECT NULL AS ISCORRECT, F_CEILING(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_FRAC Input/Output-kompatibel zu ib_udf
Entrypoint f_frac
Input DOUBLE
Kommazahl
Output DOUBLE gibt die Nachkommastellen der Kommazahl aus
TestSQL
SELECT 0.12345 AS ISCORRECT, F_FRAC(15.12345) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_FRAC(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_LN Input/Output-kompatibel zu ib_udf
Input/Output-kompatibel zu rFunc (LN)
ersetzbar durch LN
Entrypoint f_ln
Input DOUBLE
Kommazahl
Output DOUBLE natürlicher Logarithmus (Logarithmus zur Basis e) der Kommazahl
TestSQL
SELECT 0.693147180559945 AS ISCORRECT, F_LN(2) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_LN(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_LOG Input/Output-kompatibel zu ib_udf
Input/Output-kompatibel zu rFunc (LOG)
ersetzbar durch LOG
Entrypoint f_log
Input DOUBLE
Kommazahl
DOUBLE Basis für den Logarithmus als Kommazahl
Output DOUBLE Logarithmus der Kommazahl zur Basis von Parameter 2
TestSQL
SELECT 0.301029995663981 AS ISCORRECT, F_LOG(2, 10), F_LOG10(2) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_LOG(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_LOG10 Input/Output-kompatibel zu ib_udf
Input/Output-kompatibel zu rFunc (LOG10)
ersetzbar durch LOG10
Entrypoint f_log10
Input DOUBLE
Kommazahl
Output DOUBLE Logarithmus der Kommazahl zur Basis 10
TestSQL
SELECT 0.301029995663981 AS ISCORRECT, F_LOG10(2) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_LOG10(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ISDIVISIBLEBY kompatibel zu FreeUDFLib, FreeUDFLib AvERP
Entrypoint isdivisibleby
Input INTEGER
INTEGER
Divident (die Zahl, die geteilt wird)
Divisor (die Zahl, durch die geteilt wird)
Output INTEGER ist teilbar durch = 1, ist nicht teilbar durch = 0
TestSQL
SELECT 1 AS ISCORRECT, F_ISDIVISIBLEBY(15, 3) FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_ISDIVISIBLEBY(15, 4) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ISDIVISIBLEBY(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_EVEN Funktion von adhoc
Entrypoint evenodd
Input INTEGER Ganzzahl, die geprüft werden soll
Output INTEGER ist gerade = 1, ist ungerade = 0
Wird (irrtümlich) ein Parameter als DOUBLE eingegeben, wird erst auf INT gerundet und dann geprüft!
TestSQL
SELECT 1 AS ISCORRECT, F_EVEN(2) FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_EVEN(3) FROM RDB$DATABASE;
SELECT 1 AS ISCORRECT, F_EVEN(0) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_EVEN(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_SIGN Input/Output-kompatibel zu ib_udf
Input/Output-kompatibel zu rFunc (SIGN)
ersetzbar durch SIGN
Entrypoint f_sign
Input DOUBLE
Kommazahl
Output DOUBLE Vorzeichen der Kommazahl 1 = positiv, 0 = 0, -1 = negativ
TestSQL
SELECT 1 AS ISCORRECT, F_SIGN(3) FROM RDB$DATABASE;
SELECT -1 AS ISCORRECT, F_SIGN(-3) FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_SIGN(0) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_SIGN(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_PROZENTE kompatibel zu FreeUDFLib AvERP, GrUDF
Entrypoint prozente
Input DOUBLE
DOUBLE
Flieskommazahl 1
Flieskommazahl 2
Output DOUBLE wieviel % des 2. vom 1.
Z.B. VK-Preis zu EK-Preis
Test-SQL
SELECT 14.000 AS ISCORRECT, F_PROZENTE(100.00, 14.0) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_PROZENTE(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_Z Input/Output-kompatibel zu rFunc (Z)
Entrypoint r_z Output RETURN Mechanismus BY VALUE
Input DOUBLE
Flieskommazahl
Output DOUBLE wenn Input <null> Output 0 sonst Input
Test-SQL
SELECT 14.000 AS ISCORRECT, F_Z(14.0) FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_Z(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DZERO Input/Output-kompatibel zu rFunc (DZERO)
Entrypoint r_dzero Output RETURN Mechanismus BY VALUE
Input DOUBLE
DOUBLE
DOUBLE
Divident (die Zahl, die geteilt wird)
Divisor (die Zahl, durch die geteilt wird)
Wert für Division wenn Divisor 0
Output DOUBLE Wenn Divisor 0 Output Parameter 3 sonst Division Paramter 1 durch Parameter 2
Test-SQL
SELECT 14.000 AS ISCORRECT, F_DZERO(15.5, 0.0, 14.0) FROM RDB$DATABASE;
nach oben • go top •
 
Numerische-Funktionen: Vergleichen
F_MAXNUM
 
F_MAX
Funktion von adhoc
Input/Output-kompatibel zu rfunc (MAXNUM)
kompatibel zu GrUDF
ersetzbar durch MAX
Entrypoint maxnum
Input DOUBLE
DOUBLE
Flieskommazahl 1
Flieskommazahl 2
Output DOUBLE die Größere der beiden eingegebenen Flieskommazahlen
TestSQL
SELECT 15.346 AS ISCORRECT, F_MAXNUM(15.345, 15.346) FROM RDB$DATABASE;
SELECT 15.346 AS ISCORRECT, F_MAX(15.345, 15.346) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_MAX(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_MINNUM
 
F_MIN
Funktion von adhoc
Input/Output-kompatibel zu rfunc (MINNUM)
kompatibel zu GrUDF
ersetzbar durch MIN
Entrypoint minnum
Input DOUBLE
DOUBLE
Flieskommazahl 1
Flieskommazahl 2
Output DOUBLE die Kleinere der beiden eingegebenen Flieskommazahlen
TestSQL
SELECT 15.345 AS ISCORRECT, F_MINNUM(15.345, 15.346) FROM RDB$DATABASE;
SELECT 15.345 AS ISCORRECT, F_MIN(15.345, 15.346) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_MIN(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_EQUALINTEGER kompatibel zu FreeUDFLib AvERP, GrUDF
Input/Output-kompatibel zu rFunc (IEQUAL)
Entrypoint equalinteger
Input INTEGER
INTEGER
Ganzzahlwert 1
Ganzzahlwert 2
Output INTEGER 1 = ist gleich, 0 = ist ungleich
Wird (irrtümlich) ein Parameter als DOUBLE eingegeben, wird erst auf INT gerundet und dann verglichen!
TestSQL
SELECT 1 AS ISCORRECT, F_EQUALINTEGER(14, 14) FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_EQUALINTEGER(14, 15) FROM RDB$DATABASE;
SELECT 1 AS ISCORRECT, F_EQUALINTEGER(14, 14.49) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_EQUALINTEGER(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_EQUALFLOAT kompatibel zu FreeUDFLib AvERP, GrUDF
Input/Output-kompatibel zu rFunc (DEQUAL)
Entrypoint equalfloat
Input DOUBLE
DOUBLE
Flieskommawert 1
Flieskommawert 2
Output DOUBLE 1 = ist gleich, 0 = ist ungleich
TestSQL
SELECT 1 AS ISCORRECT, F_EQUALFLOAT(14.00, 14.0) FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_EQUALFLOAT(14.00, 14.01) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_EQUALFLOAT(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
 
Numerische-Funktionen: Binär
F_BIN_AND Input/Output-kompatibel zu ib_udf
Input/Output-kompatibel zu rFunc (BINAND)
ersetzbar durch BIN_AND
Entrypoint f_bin_and
Input INTEGER
INTEGER
Integerzahl 1
Integerzahl 2
Output INTEGER Binäres UND der beiden Integerzahlen
TestSQL
SELECT 1 AS ISCORRECT, F_BIN_AND(3, 5) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_BIN_AND(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_BIN_OR Input/Output-kompatibel zu ib_udf
Input/Output-kompatibel zu rFunc (BIN_OR)
ersetzbar durch BIN_OR
Entrypoint f_bin_or
Input INTEGER
INTEGER
Integerzahl 1
Integerzahl 2
Output INTEGER Binäres ODER der beiden Integerzahlen
TestSQL
SELECT 7 AS ISCORRECT, F_BIN_OR(3, 5) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_BIN_OR(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_BIN_XOR Input/Output-kompatibel zu ib_udf
Input/Output-kompatibel zu rFunc (BIN_XOR)
ersetzbar durch BIN_XOR
Entrypoint f_bin_xor
Input INTEGER
INTEGER
Integerzahl 1
Integerzahl 2
Output INTEGER Binäres exklusives ODER der beiden Integerzahlen
TestSQL
SELECT 6 AS ISCORRECT, F_BIN_XOR(3, 5) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_BIN_XOR(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_BIN_NOT Input/Output-kompatibel zu ib_udf
Input/Output-kompatibel zu rFunc (BINNOT)
Entrypoint f_bin_not
Input INTEGER Integerzahl 
Output INTEGER Binäres NOT der Integerzahl
TestSQL
SELECT -4 AS ISCORRECT, F_BIN_NOT(3) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_BIN_NOT(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_BIN_SHL Input/Output-kompatibel zu ib_udf, GrUDF
ersetzbar durch BIN_SHL
Entrypointf_bin_ f_bin_shl
Input INTEGER
INTEGER
Integerzahl 1
Integerzahl 2
Output INTEGER Binäres SHIFT Links
TestSQL
SELECT 96 AS ISCORRECT, F_BIN_SHL(3, 5) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_BIN_SHL(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_BIN_SHR Input/Output-kompatibel zu ib_udf, GrUDF
ersetzbar durch BIN_SHR
Entrypoint f_bin_shr
Input INTEGER
INTEGER
Integerzahl 1
Integerzahl 2
Output INTEGER Binäres SHIFT rechts
TestSQL
SELECT 0 AS ISCORRECT, F_BIN_SHR(3, 5) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_BIN_SHR(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_BIN_GET Input/Output-kompatibel zu rFunc (GETBIT)
Entrypoint r_getbit
Input INTEGER
INTEGER
Integerzahl
gesuchtes Bit
Output INTEGER Parameter 2-Bit der Integerzahl
TestSQL
SELECT 0 AS ISCORRECT, F_BIN_GET(3, 5) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_BIN_SHR(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_BIN_SET Input/Output-kompatibel zu rFunc (SETBIT)
Entrypoint r_setbit
Input INTEGER
INTEGER
INTEGER
Integerzahl
Nr. des auszutauschendes Bits
Bit das gesetzt werden soll
Output INTEGER Integerzahl die sich ergibt, wenn ersetzt das Parameter 2-Bit mit dem Parameter 3-Bit in Parameter 1 ersetzt wird
TestSQL
SELECT 1 AS ISCORRECT, F_BIN_GET(F_BIN_SET(3, 5, 1), 5) FROM RDB$DATABASE;
SELECT 35 AS ISCORRECT, F_BIN_SET(3, 5, 1) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_BIN_SHR(NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
 
Numerische-Funktionen: Trigonometrie
Input/Output-kompatibel zu ib_udf
Input/Output-kompatibel zu rFunc
Input immer DOUBLE ... im Bogenmaß
Output immer DOUBLE ... im Bogenmaß
F_SIN berechnet den Sinus
ersetzbar durch SIN
F_COS berechnet den Cosinus
ersetzbar durch COS
F_TAN berechnet den Tangens
ersetzbar durch TAN
F_COT berechnet den Cotangens
ersetzbar durch COT
F_ASIN
berechnet den ArcSinus
ersetzbar durch ASIN
F_ACOS berechnet den ArcCosinus
ersetzbar durch ACOS
F_ATAN
berechnet den ArcTangens
ersetzbar durch ATAN
F_ATAN2 berechnet den ArcTangens x / y
ersetzbar durch ATAN2
F_ACOT berechnet den ArcCotangens
Funktion von adhoc
Input immer DOUBLE ... im Gradmaß
Output immer DOUBLE ... im Gradmaß
F_SIND
F_COSD
F_TAND
F_COTD
F_ARCSIND
F_ARCCOSD
F_ARCTAND
F_ARCCOTD
berechnet den Sinus
berechnet den Cosinus
berechnet den Tangens
berechnet den Cotangens
berechnet den ArcSinus
berechnet den ArcCosinus
berechnet den ArcTangens
berechnet den ArcCotangens
Input/Output-kompatibel zu ib_udf
Input/Output-kompatibel zu rFunc
Input immer DOUBLE
Output immer DOUBLE
F_SINH
berechnet den SinusHyperbolicus
ersetzbar durch SINH
F_COSH berechnet den CosinusHyperbolicus
ersetzbar durch COTH
F_TANH berechnet den TangensHyperbolicus
ersetzbar durch TANH
F_COTH berechnet den CotangensHyperbolicus
Funktion von adhoc
F_ARSINH
F_ARCOSH
F_ARTANH
F_ARCOTH
berechnet den AreaSinusHyperbolicus
berechnet den AreaCosinusHyperbolicus
berechnet den AreaTangensHyperbolicus
berechnet den AreaCotangensHyperbolicus
TestSQL
SELECT 1 AS ISCORRECT, F_SIN(1.5707963267949), F_SIN(F_DEGTORAD(90)), F_SIND(90) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_SIN(NULL) FROM RDB$DATABASE;
vorige Seite • previous page • passée sitenach oben • go top • vers le hautnächste Seite • next page • prochain site