将 SQL 导出到 Excel 时的科学计数法
Posted
技术标签:
【中文标题】将 SQL 导出到 Excel 时的科学计数法【英文标题】:Scientific notation when exporting SQL to Excel 【发布时间】:2017-03-09 03:00:33 【问题描述】:我有一个将数据导出到 Excel 的 SQL 语句。问题是大量数字在导出到 Excel 时会转换为科学计数法。为了避免这种情况,我使用了 char(39),即数字周围的单引号。另外,还要检查空值,所以使用ISNULL
。
ISNULL(char(39) + Rtrim([NumberCol]) + char(39), '')
[NumberCol]
具有 char
数据类型
所以现在如果 NumberCol 是一个数值,我会得到我想要的 '000123456789' 格式。但是当它为 Null 时,我会得到 ''。我不想在 Excel 中显示 '' 而不是空白。请告诉我该怎么做。
【问题讨论】:
摆脱ISNULL
【参考方案1】:
null
位于函数右侧时的结果。如果NumberCol
是Null
,则将两个刻度线指定为返回值:
ISNULL(char(39) + Rtrim([NumberCol]) + char(39), '')
如果你不想要这两个刻度线,你可以在 char(32) 中使用空格:
ISNULL(char(39) + Rtrim([NumberCol]) + char(39), char(32))
在视觉上,该空间看起来像 Excel 中的一个空单元格。
【讨论】:
没有解决问题。刻度线是由于 NumberCol 周围的 char(39) 只有在 NumberCol 不为 null 且其中没有数字时,才会显示刻度线。 NumberCol 是否可能没有数字数据类型?在这种情况下,当它是一个空字符串时,刻度线可能会自行显示。如果 NumberCol 不是数字,这将起作用:select isnull(char(39)+nullif([NumberCol],'')+char(39),char(32))
@SilverFish 如果这是你的答案,那么接受它怎么样,然后当他们问同样的问题时,我们可以为其他人指出它。 (当没有接受或赞成的答案时,我们不能将其用作重复指针)。以上是关于将 SQL 导出到 Excel 时的科学计数法的主要内容,如果未能解决你的问题,请参考以下文章
救命啊啊 jC#中 使用SQL语句查询出来的数据导出EXCEL文档怎么弄 ,最主要的是EXCEL里面去除科学计数
java导出CSV 用excel打开 数字过长变成科学计数法