sql - 为什么点或句点 ('.') 在 SQL Server 中被视为数字?
问题描述
我正在处理一个查询,发现 SQL Server 中的 ISNUMERIC 函数为输入“。”返回 1。
为什么会这样?为什么 SQL Server 将其视为数字?
我在这里错过了什么吗?
DECLARE @Input VARCHAR = '.'
SELECT IsNumeric(@Input)
解决方案
从在线文档:
ISNUMERIC 对某些不是数字的字符(例如加号 (+)、减号 (-))和有效的货币符号(例如美元符号 ($))返回 1。有关货币符号的完整列表...
例如:
SELECT ISNUMERIC(+)
将返回 1,所以我建议改用TRY_PARSE()。
您可以从 MSDN 博客阅读这个有用的链接,也可以从SQLServerCentral阅读这个链接。
推荐阅读
- java - 如何对 AnyLogic 中数据库列的值求和?
- python - MF 8AM-4PM 的 Pandas 过滤器数据集
- python - Python 无法识别同一目录中的类
- visual-studio - 如何在使用 pack 命令生成 NuGet 包时为所有项目保持相同的版本
- excel - 查找每个 ID 的特定日期之前的最大日期和特定日期之后的最小日期
- sql-server - 即读后处理编程方法
- javascript - 如何从外部库导入已注册的 Phaser3 游戏对象;如何分发 Phaser3 游戏对象
- c# - 压缩两个具有相同内容的文件并将它们编码为 base64 给出不同的响应
- ios - 如何在 Firestore 中读取当前用户配置文件
- sql - 如何使用窗口函数在sql中选择第三、第四、第五个日期