sql - 为什么在我使用 ISNUMERIC() 时转换失败?

标签 sql sql-server tsql casting

SELECT CAST([Revenue Size (M)] AS float)
FROM Raw_Data A
WHERE ISNUMERIC([Revenue Size (M)]) = 1

我得到一个错误:

Error converting data type nvarchar to float

收入规模 (M) 样本: 7371 ,7372 ,4899 ,59.5 ,1.4 ,2 ,3400

最佳答案

有多个示例,其中 isnumeric() 返回 1 但该值无法转换为 float 。四个例子是:

  • '.'
  • '-'
  • '-.'
  • '$1'

您可以在 this SQL Fiddle 中看到这个.

更好的做法是使用 try_cast():

SELECT TRY_CAST([Revenue Size (M)] AS float)
FROM Raw_Data A
WHERE TRY_CAST([Revenue Size (M)] AS float) IS NOT NULL;

关于sql - 为什么在我使用 ISNUMERIC() 时转换失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68434883/

相关文章:

sql - 从 SUM(column) <= @variable 的表中选择前 X

ruby-on-rails - ruby - 同一模型的 ActiveRecord 多个数据库

php - 内连接包含 3 个表的计数

sql - T-SQL 2008 中的 REPLACE 函数与 T-SQL 2005 不同

mysql - 如何统计和分组查询以获得正确的结果?

sql - 将一个表中的两个不同列连接到另一个表中的同一列?

mysql - SQL 查询连接(创建来自不同表的组合总和的 View )

sql-server - LIKE 在 SQL 中不起作用

mysql - 如果存在其他行如何跳过行

php - 是否可以自行连接单个表?