我有关于T-SQL(MS-SQL)如何处理数据类型转换一个简单的问题。我有这两个查询返回下面指出各自的价值观,但我不知道为什么:第二个显示这种方式。实际被捕获的全部价值是?所讨论的列的数据类型是浮点数。只需要这些等于使用IF语句进行比较。MS-SQL类型转换逻辑
查询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'
返回值: 2953432.88
问题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'
返回值: 2.95343e + 006
含义你不想要符号,但仍然希望值作为nvarchar(50),但看起来像2953432.88? –
是啊,但我为它是如何工作的背景更加好奇。就像为什么会这样“E +”开始的最后一个非十进制数字时,50个字符比足以容纳整个浮点值吗? –
什么是@@版本? –