sql-server – 使用IF IsNumeric作为参数
|
我想知道如何在SQL中使用IsNumeric,它与VBScript有点不同,但我想我能绕过它,即: IF 1 = ISNUMERIC('5675754674')
BEGIN
...
END
这会是一种解决方法吗?我真正想做的是: IF ISNUMERIC('5675754674')
BEGIN
...
END
但这会产生错误.示例1似乎有效,但只是确保我做得对,无法在网上找到任何好的资源. 解决方法SQL Server中没有布尔值.这意味着你不能只说IF(表达式);你必须将它与某些东西进行比较,因为它确实会像你在其他语言中习惯的那样返回真或假.只是一个偏好,但我更喜欢这样写: IF ISNUMERIC('5675754674') = 1
BEGIN
...
END
SQL Server中没有办法避免与1进行比较,如第二个示例所示. 另外,您应该注意ISNUMERIC()的弱点 – 它可以为“数字”值提供误报,例如.,CHAR(9),e,$和许多其他非数字字符串.如果你想知道某些东西是否是整数,例如,最好说: IF '5675754674' NOT LIKE '%[^0-9]%' BEGIN ... END 但即使这不是一个完整而有效的测试,因为它将返回值为> (2 ^ 32)-1,对于负值,它将返回false. ISNUMERIC()的另一个缺点是,如果值可以转换为任何数值类型,它将返回true,这与所有数字类型不同.通常人们测试ISNUMERIC(),然后尝试将FLOAT强制转换为SMALLINT,转换失败. 在SQL Server 2012中,您将有一个名为 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 用SQL语句实现随机查询数据并不显示错误数据的方法
- Laravel:使用Fluent在JOIN中使用复杂条件
- sql-server – MS-SQL / ColdFusion:神秘数据库错误:对象
- MySQL优化必须调整的10项配置
- sql-server – SQL Server无提示安装在安装期间出错
- sql – 索引索引(Oracle)
- SQL Server 排序函数 ROW_NUMBER和RANK 用法总结
- sql-server – SQL Server:无法为链接服务器“(null)”初始
- mysql分页原理和高效率的mysql分页查询语句
- sql-server-2008 – 如何查找调用给定存储过程的所有SQL代理
