Hallo in die Runde,
wie der Titel schon sagt versteh ich was nicht.
Folgender Code:
Ergebnis:

Man beachte die dritte Spalte (das ist die Länge der ersten Spalte). Es geht um die Spalte cast_build. Die Case Anweisung soll abhängig von der Länge entsprechend konvertieren. Die Konvertierung funktioniert, siehe Spalten 4,5. Nur der Case konvertiert IMMER mit vier Nachkommastellen. Und das Bester: Wenn jetzt beim "case len('10586.10400')" drin steht und der Else Zweig ausgeführt wird steht in Spalte cast_build 0.0000.
Vielleicht habt ihr ne Erleuchtung?
wie der Titel schon sagt versteh ich was nicht.
Folgender Code:
select '10586.104',case len('10586.104') when 9 then cast('10586.104' as decimal(9,3))when 10 then cast('10586.104' as decimal(10,4))else 0end as cast_Build,len('10586.104'),cast('10586.104' as decimal(9,3)),cast('10586.104' as decimal(10,4))Ergebnis:

Man beachte die dritte Spalte (das ist die Länge der ersten Spalte). Es geht um die Spalte cast_build. Die Case Anweisung soll abhängig von der Länge entsprechend konvertieren. Die Konvertierung funktioniert, siehe Spalten 4,5. Nur der Case konvertiert IMMER mit vier Nachkommastellen. Und das Bester: Wenn jetzt beim "case len('10586.10400')" drin steht und der Else Zweig ausgeführt wird steht in Spalte cast_build 0.0000.
Vielleicht habt ihr ne Erleuchtung?
