2016-08-05 14 views
1

Ich habe ein Problem mit einem Zeug AbfrageSQL Server Zeug float

grondstof = stuff((select '[' + cast(cast((Grondstof1) as int) as varchar(20)) + ']' 
    FROM table g  
    FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1,0, '') 

das ist, was bekommen [0] [0]
und was ich erwarte [0.40] [0.20]

= stuff((select '[' + cast(cast((Grondstof1*100) as int) as varchar(20)) + ']' 
    FROM table g 
    FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1,0, '') 

gibt mir [40] [20]

kann jemand helfen?

+0

würde ich empfehlen, einige Beispieldaten geben mit diesem gehen zusammen, insbesondere die Werte in grondstof1 –

Antwort

1

dies versuchen, können

stuff((select '[' + cast(cast((Grondstof1) as DECIMAL(6,2)) as varchar(20)) +']' 
FROM table g 
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1,0, '') 
+0

Dies ist für mich vernünftig aussieht. Ich bin mir nicht sicher, warum es wurde downvoted. –

1

Sie die str()-Funktion verwenden. . . oder eine andere Methode eine Zahl mit Dezimalstellen in eine Zeichenfolge umzuwandeln:

stuff((select '[' + str(4, 2) +']' 
     from table g 
     FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1,0, '')