May*_*ayo 31 regex sql t-sql sql-server
在SQL Server(2000/2005/2008)中确定字段值是否为整数的最佳方法是什么?
对于不太可能转换为整数的各种格式,IsNumeric返回true.例子包括'15,000'和'15 .1'.
您可以使用类似的声明,但这似乎只适用于具有预定位数的字段...
select * where zipcode like '[0-9][0-9][0-9][0-9][0-9]'
Run Code Online (Sandbox Code Playgroud)
我可以编写一个用户定义的函数,尝试将varchar参数转换为try/catch块中的int,但我正在检查社区是否有人遇到任何有用的方法来实现这个目标 - 最好是可以在SQL语句的where子句中使用,而不创建其他对象.
gbn*_*gbn 55
处理否定的后期进入
ISNUMERIC(zipcode + '.0e0') --integer
ISNUMERIC(zipcode + 'e0') --decimal
Run Code Online (Sandbox Code Playgroud)
欲了解更多看到这
如果是SQL Server 2005+,我将启用CLR并创建支持正则表达式的函数.对于SQL Server 2000,请参阅此文章以创建UDF以执行相同的操作.
然后我会使用正则表达式: ^\d{5}$
小智 5
此表达式为整数值提供 1,否则为 0
floor((floor(abs(zipcode)))/abs(zipcode))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47631 次 |
| 最近记录: |