回答
ISNUMERIC返回一个字符串是否是数字,但对于非整数返回true的功能。
所以,你可以使用:
WHERE ISNUMERIC(str) AND str NOT LIKE '%.%' AND str NOT LIKE '%e%' AND str NOT LIKE '%-%'
见this:
CREATE Function dbo.IsInteger(@Value VarChar(18))
Returns Bit
As
Begin
Return IsNull(
(Select Case When CharIndex('.', @Value) > 0
Then Case When Convert(int, ParseName(@Value, 1)) <> 0
Then 0
Else 1
End
Else 1
End
Where IsNumeric(@Value + 'e0') = 1), 0)
End
斯坦达特T-SQL函数ISNUMERIC(表达) 确定表达式是否为有效的数值类型。
确实有效的数字类型,虽然它不关心整数,小数,金钱还是浮点数。 OP显式询问了整数。 – Joey 2010-01-21 13:49:06
您可以使用LIKE操作:
使用'LTRIM(RTRIM(str))NOT LIKE'%[^ 0-9]%''来允许数字周围出现空格。 – sparebytes 2015-10-07 17:41:59
这是一个有点棘手保证值将符合4字节整数。
由于您使用的是2005年 - 一种方法是尝试转换try/catch块内的值。这将是确保它实际上是一个整数的最好方法。当然,您需要根据您的要求处理不在抓块中的箱子。
另一种方式只是测试只对 “数字” 是这样的:
其中strVal不LIKE '%[^ 0-9]%'
这将错过-25。以及允许'99999999999999999999' 因此,您可能需要在此方法中包含其他条件。
即使原来的海报是指SQL 2005,我发现在2008 r2直where isnumeric(string)
导致错误4145非布尔类型。要解决这一点:where isnumeric(string) = 1
使用〜(CAST(PATINDEX( '%[^ 0-9]%',值)作为BIT))处理所有的字符
- 1. 是否有可能只获得一个字符串的第一个字符?
- 2. 如何确定一个字符串是否是ksh的数字
- 3. C#:如何获得一个字符串的第一个字符?
- 4. 判断一个字符串是否是另一个子字符
- 5. 如何检查一个对象是否是一个字符串?
- 6. 如何找出字符串的第一个字符是否是数字?
- 7. 如何检查字符串中的第一个字母是否是数字
- 8. 如何获得一个字符串在ObjectiveC中的另一个字符串?
- 9. 获得一个字符串
- 10. 获得一个字符串
- 11. 给定一个字符串,如何检查前几个字符是否是另一个字符串? C++
- 12. 如何获得REGEXP_SUBSTR一个字符串
- 13. 如何检查一个字符串是否包含一个子字符串 - mysql
- 14. 如何检查一个字符串是否等于另一个字符串?
- 15. 如何找到一个字符串是否包含在另一个字符串
- 16. 如何识别一个字符串是否是一个数字,如果是,将其转换为一个int? (C++)
- 17. 如何检查一个字符串是否是纯字母?
- 18. Java,如何检查一个字符串是否包含数字?
- 19. 当是一个字符串不是一个字符串
- 20. 确定一个字符串是不是另一个字符串
- 21. 确定NSString的第一个字符是否是一个数字
- 22. vb.net如何检查一个字符串是否有某个字
- 23. 如何得到一个数字一个字符串的PHP
- 24. 如何确定一个字符串是否是C#中的数字
- 25. C - 检查字符串是否是另一个字符串的子字符串
- 26. 找到一个字符串是否是SML中另一个字符串的子字符串NJ
- 27. 如何检查一个ruby字符串是一个实际的字符串还是一个blob数据如image
- 28. 检查一个字符串是否是一个有效的数字:ArrayIndexOutOfBoundsException异常
- 29. 检查一个字符串是否全部是数字和10个字符长
- 30. 测试一个字符串是否包含另一个字中的任何字
什么是一个像''£串''或''0d0''? 'ISNUMERIC'仍然会返回'1'。 – 2014-03-13 13:49:44
我认为按字符排除字符并没有帮助,因为我们可以有多个组合。例如:特殊字符,字母等 – Dev 2017-04-10 10:47:45