首页 > 解决方案 > 为什么点或句点 ('.') 在 SQL Server 中被视为数字?

问题描述

我正在处理一个查询,发现 SQL Server 中的 ISNUMERIC 函数为输入“。”返回 1。

为什么会这样?为什么 SQL Server 将其视为数字?

我在这里错过了什么吗?

DECLARE @Input VARCHAR = '.'
SELECT IsNumeric(@Input)

标签: sqlsql-server

解决方案


在线文档

ISNUMERIC 对某些不是数字的字符(例如加号 (+)、减号 (-))和有效的货币符号(例如美元符号 ($))返回 1。有关货币符号的完整列表...

例如:

SELECT ISNUMERIC(+)

将返回 1,所以我建议改用TRY_PARSE()

您可以从 MSDN 博客阅读这个有用的链接,也可以从SQLServerCentral阅读这个链接。


推荐阅读