Ich hatte eine kurze Frage, wie T-SQL (MS-SQL) Datentypcasts behandelt. Ich habe diese zwei Abfragen, die die jeweiligen unten angegebenen Werte zurückgeben, aber ich wundere mich, warum das zweite so angezeigt wird. Wird der volle Wert tatsächlich erfasst? Der Datentyp der betreffenden Spalte ist ein Float. Sie brauchen nur diese zu vergleichen mit einer IF-Anweisung.MS-SQL-Typ Casting-Logik
Abfrage 1:
SELECT SUM ([CS_EQ_SHPD]) as CS_EQ_SHPD
FROM [Supplies_DB].DBO.[ITEM]
LEFT JOIN [Supplies_DB].DBO.[BU]
ON BU_# = Business_Unit
WHERE FISC_WEEK = '49' AND FY17_Market = 'Southeast'
Rückgabewert: 2953432,88
Abfrage 2:
SELECT CAST(SUM ([CS_EQ_SHPD]) AS NVARCHAR(50)) as CS_EQ_SHPD
FROM [Supplies_DB].DBO.[ITEM]
LEFT JOIN [Supplies_DB].DBO.[BU]
ON BU_# = Business_Unit
WHERE FISC_WEEK = '49' AND FY17_Market = 'Southeast'
Rückgabewert: 2.95343e + 006
Bedeutung Sie wollen nicht die Notation, aber immer noch wollen den Wert als nvarchar (50) aber sieht aus wie 2953432.88? –
Ja, aber ich bin neugierig, wie das im Hintergrund funktioniert. Wie macht es das, dass "e +" mit der letzten nicht-dezimalen Zahl beginnt, wenn 50 Zeichen mehr als genug sind, um den gesamten Gleitkommawert zu halten? –
Was ist @@ Version? –