Bla*_*man 0 sql sql-server where-clause
我有一个varchar通常有十进制值的列,但有时在该字段中有一些垃圾文本字符.
是否可以在WHERE子句中过滤成功转换为十进制值的行?
我正在使用sql-server 2005
一种方法是ISNUMERIC功能:
select * from YourTable where ISNUMERIC(col1) = 1
Run Code Online (Sandbox Code Playgroud)
有一个问题:isnumeric每当字符串可以转换为任何数字类型时返回1,包括money.例如,假设您有使用不同小数分隔符的行,例如7.9和7,9.两者都将转换为money,并isnumeric为它们返回1.但只有一个转换为decimal,具体取决于SQL Server语言设置.
| 归档时间: |
|
| 查看次数: |
309 次 |
| 最近记录: |