【问题标题】:How to identify long value using sql如何使用sql识别长值
【发布时间】:2021-11-07 18:17:08
【问题描述】:

我需要检查文件上传列中收到的值是否有exponential或长值。

例如,如果值是 5.02E+13 而不是数值 - 50100434157080,则需要使用格式不正确的消息来限制它。

为此,我在一个临时表中将上传内容从前端传递到后端,然后检查传递的值是指数值还是数值。

尝试使用 T-SQL 函数 isnumeric() 但它没有给我预期的结果。还有其他功能吗?

【问题讨论】:

  • 列的数据类型是什么?什么数据库?
  • Column 是 Account Number 的 varchar 列。当在 excel 中维护帐号时,有时它们在 dataTable 中以不同的格式(例如指数形式)读取。因此,我需要验证并限制此类条目。

标签: sql sql-server tsql


【解决方案1】:

由于您提到使用isnumeric,我假设您使用的是SQL Server,在这种情况下您可以尝试try_cast,例如

select case when Try_Cast(Column as bigint) is null then 'not integer' else 'integer' end
from table

你也可以使用like

select case when Column like '%e%' then 'exponent' else 'number' end
from table

【讨论】:

  • 如果值中不存在“e”怎么办?
  • @JenK 样本数据的假设是它会,因为没有e 它不会有指数。
猜你喜欢
  • 2017-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多