将 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 位于函数右侧时的结果。如果NumberColNull,则将两个刻度线指定为返回值:

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打开 数字过长变成科学计数法

将excel数据导入sql中,出现科学计数法

php导出excel时数字变成科学计数法,有的单元格内容是#号,最后一条数据跑到第一行的右边,怎么办?

poi导出excel字符串变科学计数法问题

excel 文本转换数字,数字变成科学计数法了,该怎么解决??