Announcement

Collapse
No announcement yet.

SQL Abfrage mit cast

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

  • SQL Abfrage mit cast

    Hallo.

    Habe eine Abfrage in der Form

    SELECT AVG(cast(value as decimal(18,2))) from ...

    value ist in der Datenbank ein varchar(50)

    ich erhalte aber die Fehlermeldung "Error Converting data type varchar to numeric"

    mein Problem ist glaub, dass manche Werte von value so aussehen
    z.B. 1.1545E-02 also abgekürzt.

    wie kann ich diese Werte trotzdem in Numeric casten?

  • #2
    Ich denke einfach dass das kein numerischer Wert mehr ist. Ich frage mich immer wieder warum irgendwelche Leute numerische Werte in der DB als Varchar ablegen. Genau sowas kommt dabei raus.
    Wenn das der standardkonverter nicht kann wirst Du schlechte Karten haben.

    Comment


    • #3
      In diesem Fall wird man sich wohl selber einen Konverter in Form einer UDF schreiben müssen (zumindest wenn es sich hier um den SQL-Server handelt). Damit wären auch diese Strings in numerischen Funktionen verwendbar - allerdings ziemlich auf Kosten der Laufzeit.
      Die beste Lösung wäre allerdings, die Spalte selber auf zB. decimal(18,x) umzustellen oder eine zusätzliche Spalte einzuführen in die ein Trigger bei Insert/Update immer gleich den String zusätzlich als Wert in diese Spalte stellt, damit man nicht bei jedem Zugriff konvertieren muss.

      bye,
      Helmut

      Comment

      Working...
      X