Murcks Geschrieben 2. August 2006 Geschrieben 2. August 2006 Hallo! Ich mal wieder. Ich möchte gerne eine Kommazahl (z.B. 1,2000) mit nur einer Kommastelle (1,2) ausgeben. Gibt es da (wie in VB) einen "Format"-Befehl? Finde dazu leider nix. Zitieren
Darth_Zeus Geschrieben 2. August 2006 Geschrieben 2. August 2006 Kommt darauf an, welche DB. Bei MaxDB geht das mit DEC(1) bei anderen nicht. Generell hilft dir DAS DA vielleicht weiter. Zitieren
Murcks Geschrieben 2. August 2006 Autor Geschrieben 2. August 2006 OK, wenn's keine explizite Funktion dazu gibt, dann werd ich das benutzen: [FONT="Courier New"][COLOR="Blue"]DECLARE[/COLOR] @Value [COLOR="blue"]AS DECIMAL[/COLOR] (10, 4) [COLOR="blue"]SET[/COLOR] @Value = 1.2000 [COLOR="blue"]PRINT[/COLOR] [COLOR="Red"]'Die Zahl (auf eine Stelle hinterm Komma): '[/COLOR] + [COLOR="Magenta"]STUFF[/COLOR]([COLOR="magenta"]CONVERT[/COLOR]( [COLOR="blue"]VARCHAR[/COLOR](10) , @Value), [COLOR="Magenta"]CHARINDEX[/COLOR]('.', @Value) + 2, 3, [COLOR="Red"]''[/COLOR])[/FONT] Naja, hatte gedacht, dass es vielleicht weniger "kompliziert" geht, trotzdem Danke! Zitieren
zirri Geschrieben 2. August 2006 Geschrieben 2. August 2006 wie Darth_Zeus schon schreibt, ohne angabe der DB schon schwer, aber schau mal nach ROUND(zahl, NKS) gruss Zitieren
Murcks Geschrieben 3. August 2006 Autor Geschrieben 3. August 2006 Hätte klappen können mit ROUND(), aber die Zahl soll nicht gerundet sondern einfach nur auf eine Nachkommastelle gekürzt werden. Wir reden hier übrigens vom SQL Server 2005. Zitieren
Goos Geschrieben 3. August 2006 Geschrieben 3. August 2006 Du kannst deine Variable natuerlich auch einfach einer anderen Variablen vom Typ DECIMAL (10, 1) zuweisen. Dann hast auch eine Nachkommastelle, der Rest wird gerundet. Ach und pass bei deinem DECIMAL (10, 4) auch auf, dass du keine groesseren Zahlen als 999999,9999 verwendest Goos Zitieren
Goos Geschrieben 3. August 2006 Geschrieben 3. August 2006 Wenn du nicht runden willst, dann muesstest das wohl ueber ein floor(@value*10)/10 machen. Goos Zitieren
Murcks Geschrieben 3. August 2006 Autor Geschrieben 3. August 2006 @ Goos Danke! Das funktioniert! [FONT="Courier New"]DECLARE @Message AS VARCHAR(100) DECLARE @Value AS DECIMAL(10, 4) SET @Value = 0.25 SET @Message = 'Auf alle Artikel ' + CONVERT(VARCHAR(10), FLOOR(@Value * 100)) + '% Rabatt!' PRINT @Message[/FONT] Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.