作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚在数据库中发现了一个查询,该查询失败导致报告失败。查询的基本要点:
Select *
From table
Where IsNull(myField, '') <> ''
And IsNumeric(myField) = 1
And Convert(int, myField) Between @StartRange And @EndRange
Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the nvarchar value '/A' to data type int.
Select *
From (
Select *
From table
Where IsNull(myField, '') <> ''
And IsNumeric(myField) = 1
) t0
Where Convert(int, myField) Between @StartRange And @EndRange
最佳答案
IsNumeric 仅告诉您字符串可以转换为 SQL Server 中的数字类型之一。它可能能够将其转换为货币或浮点数,但可能无法将其转换为整数。
改变你的
IsNumeric(myField) = 1
not myField like '%[^0-9]%' and LEN(myField) < 9
select ISNUMERIC('.'),ISNUMERIC('£'),ISNUMERIC('1d9')
----------- ----------- -----------
1 1 1
(1 row(s) affected)
关于tsql - 如何在非数字字段上查询 'between' 数字数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3760355/
我是一名优秀的程序员,十分优秀!