使用SQL Server 2005
我想从表中只获取数值
列1
12345
asdf
2312
ase
acd
...,
Run Code Online (Sandbox Code Playgroud)
尝试查询
Select Isnumeric(column1) from table
Run Code Online (Sandbox Code Playgroud)
显示结果为
1
0
1
0
0
..,
Run Code Online (Sandbox Code Playgroud)
我需要colum1数值
需要SQL Server查询帮助
Bre*_*dán 55
SELECT column1 FROM table WHERE ISNUMERIC(column1) = 1
Run Code Online (Sandbox Code Playgroud)
请注意,正如Damien_The_Unbeliever所指出的,这将包括任何有效的数字类型.
要过滤掉包含非数字字符(和空字符串)的列,您可以使用
SELECT column1 FROM table WHERE column1 not like '%[^0-9]%' and column1 != ''
Run Code Online (Sandbox Code Playgroud)
Dam*_*ver 34
其他答案表明在where子句中使用IsNumeric是正确的,只要它们去,但重要的是要记住,如果值可以转换为任何数字类型,它返回1 .因此,诸如"1d3"的奇怪将使其通过滤波器.
如果您只需要由数字组成的值,请显式搜索:
SELECT column1 FROM table WHERE column1 not like '%[^0-9]%'
Run Code Online (Sandbox Code Playgroud)
以上是过滤以拒绝任何包含非数字字符的列
请注意,在任何情况下,您都会进行表扫描,索引对于这种查询是无用的.
归档时间: |
|
查看次数: |
112701 次 |
最近记录: |