我住在巴西,十进制分隔符是逗号。由于一系列原因,我在SQL Server中使用点作为十进制分隔符,这与Excel不同。
话虽如此,我想知道为什么以下查询
select 1.0*5
被理解为Excel中的文本(如果是这样),复制和粘贴时,点不会转换为逗号,而
select cast(1.0*5 as float)
在Excel中被理解为浮动。
第一个查询的结果类型是什么?
更新
如果查询是
select 1.1*5
Excel单元格中复制和粘贴的结果为5.5
。无法在Excel中将其转换为值。
虽然第二个查询会导致5,5
。例如,我可以在Excel中使用Excel中的这个值。
答案 0 :(得分:0)
如果您直接在Excel中执行此操作,则您的区域设置似乎不会将其视为带小数的操作,而是文本。如果您将区域设置更改为美国,则可能会正确解析它。
两者之间的区别在于,您实际上是在告诉值与默认值不同。所以你的区域设置被覆盖了。
Excel虽然很聪明,却倾向于做出许多可以与任意数量相关联的假设。有时你只需处理它。
最后,您的第二个查询可能会产生更好的结果。