Announcement

Collapse
No announcement yet.

Isnull

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Isnull

    Hallo zusammen!

    Ich würde gerne NULL-Werte abfangen und dabei auf die ewig langen CASE WHEN Abfragen zu verwenden. Unter MSSQL gibt es hierfür die Funktion ISNULL, der man den Spaltenwert und einen Defaultwert übergibt. Ist der Spaltenwert NULL, dann wird der Defaultwert zurückgegeben.
    ISNULL(Spalte, 0) entspricht also
    CASE WHEN Spalte IS NULL THEN 0 ELSE Spalte END

    Gibt es sowas unter Firebird (1.5) - es darf auch gern eine UDF sein.

    Danke Wolfgang
    In God we trust - all others pay cash!

  • #2
    Ab FB2.0 gibt es
    Code:
    IIf( <bed>, <wenn wahr>, <wenn nicht>)
    oder inullif in der fbudf

    Comment


    • #3
      seit FB15:

      COALESCE

      Allow a column value to be calculated by a number of expressions, the first expression returning a non NULL value is returned as the column value. The function has the same meaning as NVL in Oracle.

      Syntax:

      COALESCE (value {, value} ... )

      Notes:

      * COALESCE (V1, V2) is equivalent to the following case specification:
      CASE WHEN V1 IS NOT NULL THEN V1 ELSE V2 END
      * COALESCE (V1, V2, ..., Vn), for n >= 3, is equivalent to the following case specification:
      CASE WHEN V1 IS NOT NULL THEN V1 ELSE COALESCE (V2, ..., Vn) END

      Example:

      SELECT
      PROJ_NAME AS Projectname,
      COALESCE(e.FULL_NAME, '[> not assigned <]') AS Employeename
      FROM
      PROJECT p LEFT JOIN EMPLOYEE e ON (e.EMP_NO = p.TEAM_LEADER)

      Comment


      • #4
        Danke Klemmo, COALESCE ist genau das was ich brauche! Ist der Befehl in irgendeinem SQL-Standard integriert oder ist das nur eine gute Idee der Firebird-Community?
        @Markus: Den iNullIf-Befehl aus der fbUDF werd ich mir auch nochmal genauer ansehen, hatte seine Funktionalität aber anders in Erinnerung.
        In God we trust - all others pay cash!

        Comment


        • #5
          coalesce ist recht weit verbreitet
          http://en.wikipedia.org/wiki/Null_(SQL)#COALESCE
          in welchem Standard das eingeführt wurde kann dir google sicher sagen

          Gruß
          Holger
          www.ibexpert.com

          Comment

          Working...
          X