Sybase konvertieren von float zu string
Ich eine Anforderung haben, konvertieren die Felder in float
zu string
, mit folgenden Einschränkungen
- Müssen, kürzen Sie die Ergebnisse nach 6 stellen nach dem Dezimalpunkt
- Abschneiden nachgestellte Nullen nach dem Dezimaltrennzeichen
Beispiel:
- 17.666655942234 ==> in eine Zeichenfolge konvertiert "17.666655"
- 17.6 ==> in eine Zeichenfolge konvertiert "17.6" und nicht "17.600000"
- 17.66 ==> in eine Zeichenfolge konvertiert "17.66"
Ich habe versucht, die folgenden, aber nicht für einige der oben genannten Anforderungen erfüllt und auch nicht in der Lage zu löschen, die null ist.
select
CASE WHEN RIGHT(convert(VARCHAR, cast(cast(product_price as DECIMAL(28,6)) as float)),2) = ".0"
THEN LEFT(convert(VARCHAR, product_price),(CHAR_LENGTH(convert(VARCHAR(15), product_price))-2))
ELSE substring( convert(VARCHAR, cast(cast(product_price as DECIMAL(28,7)) as float)),1, charindex(".",convert(VARCHAR, cast(cast(product_price as DECIMAL(28,7)) as float)))+6) END
from #TEMP
#TEMP-Daten
id | product_price
-------------------
1 | 17.3435302323
2 | 17.700000000
3 | 17.60
4 | 19.0
Ich denke, ich habe kompliziert die Abfrage, und eine einfachere version vorhanden ist.
Ich weiß, das könnte leicht gehandhabt werden in high-level-Sprache, aber wenn dies kann leicht untergebracht werden in der Abfrage selbst dann lassen Sie es mich bitte wissen.
InformationsquelleAutor mtk | 2012-10-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht sicher, ob es einfacher Weg, dies zu tun, die auf sybase.
Dieses Beispiel funktioniert für mich
Lösung mit
varchar(15)
Ja, es ist für mich arbeiten, aber es gibt noch eine Einschränkung, die ich nicht verwenden können, varchar-mehr als 15 und nach der Umstellung auf varchar 15 es ist nicht wokring für mich, kann u bitte vorschlagen, etwas ?
Wenn Sie ersetzen
convert(varchar(30),@val)
mitconvert(varchar,@val)
wird es funktionieren?Sie können auch konvertieren
float
zunumeric(10,5)
, bearbeitet die post.ja es wird funktionieren, aber Einschränkung ist varchar nur 15 🙁
InformationsquelleAutor Parado