【问题标题】:SQL query that prevents Excel from converting long integer to scientific notation阻止 Excel 将长整数转换为科学计数法的 SQL 查询
【发布时间】:2019-12-31 19:04:08
【问题描述】:

所以我已经很久没有用 SQL 做任何花哨的事情了,所以我会尽力解释一下。请客气,我在这里尽力了。

基本上,我从 Snowflake 中的数据库中提取信息并将其放入新的 XML 文件中,并且该数据完全按照写入表单电子邮件的方式输入。

其中一个值是 14 个字符长的 ID 号(例如:12345678912345),它以整数形式存储在数据库中(或者我被告知),但 Excel 会自动将其转换为科学记数法。由于它是一个 ID 号,它需要看起来像一个 ID 号,而不是科学计数法。

现在,我的查询只是选择并输入常规的 ol' 值,然后我们在 Excel 工作表中手动更改它。就像字面上一样SELECT ID_Number from TheThing

我认为可能有用的一件事是:

SELECT CAST(ID_Number as bigint) as ID_Number

...但它不起作用。我发现的大多数其他解决方案似乎都没有解决我不需要的整数到字符串转换的特定场景,我很心烦意乱。

我只是一个实习生,这可能有一个非常明显的答案,但我的实习生已经放弃了,我需要为自己的理智找到答案。自从我对 SQL 做任何花哨的事情以来已经有一分钟了,所以请对我好点,如果这是一个愚蠢的问题,请见谅。

【问题讨论】:

  • 这是为显示选择的格式。内部值仍然设置,如果您双击单元格,您可以看到它。您如何将其导出到 excel 中?

标签: sql excel xml snowflake-cloud-data-platform


【解决方案1】:

在 Snowflake 中,BIGINTINT(EGER) 是同一个东西,你想要的是 VARCHAR。正如罗斯在他的评论中提到的,这可能只是 Excel 中的格式问题。在 Excel 中,可以通过在值的开头包含单引号 ' 或使用文本到列功能将任何值转换为字符串。

如果您想尝试将其从 Snowflake 格式化为字符串,除非您包含某种额外的字符串字符,否则强制转换它可能不会奏效。

要从 Snowflake 中获取这种类型的格式,您可以尝试:

SELECT '\'' || CAST(ID_Number AS VARCHAR) as ID_Number;

【讨论】:

  • 字符串格式化的东西起作用了!我们只是做了一个 # 而不是 ' 并且它在电子邮件中显示得很好。非常感谢!我终于可以晚上睡觉了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-22
  • 1970-01-01
相关资源
最近更新 更多