首页 新闻 搜索 专区 学院

怎么用sql语句去除数据表里某一列含有字母的数据

0
悬赏园豆:20 [已解决问题] 解决于 2013-11-11 16:29

81070108
81070109
81070110
81070111
81070228
81070257
81070258
81070259
810702H01U01
810702H02U01
81070340
81070341
81070387
810703H01U01

 

 

如上述数据,我想求出这一列除了含有字母的数据的最大值:81070387

这里数据长度是不固定的

lijunmomo的主页 lijunmomo | 初学一级 | 园豆:34
提问于:2013-11-08 18:07
< >
分享
最佳答案
2

SELECT  MAX( [NumStr]) AS MAXNUM
FROM [dbo].[TempTable]
WHERE [NumStr] NOT LIKE ('%[A-Z,a-z]%')

收获园豆:20
贪心狸猫 | 小虾三级 |园豆:872 | 2013-11-08 22:40

这个对的,谢谢!

lijunmomo | 园豆:34 (初学一级) | 2013-11-11 16:27
其他回答(4)
0

有个笨方法,先用集合得到所有数据,再循环判断这集合中每条是int类型的数据,用另一个集合来存,然后。。。

x.y. | 园豆:226 (菜鸟二级) | 2013-11-08 18:14
0

有个sql函数叫 ISNUMERIC(@value)

所以语句如下:

SELECT MAX(id) FROM Ttt WHERE ISNUMERIC(id)=1

这个不是完全满足你的题意。@贪心狸猫 的方法更好~

幻天芒 | 园豆:36594 (高人七级) | 2013-11-09 00:56
0

数据量小使用like还好,数据量大一点就不大好了,使用函数多了,效率也会有所降低。

我有个方案,sql中允许使用正则表达式,不过性能也会有所降低,如果想在sql中使用正则的话,欢迎参考我的新浪博客:http://blog.sina.com.cn/s/blog_75a555e40100vtvr.html  前提是sql 2005以上,2000是不支持的

袁家小黑球 | 园豆:1045 (小虾三级) | 2013-11-09 11:14
0

学习了

大芝麻 | 园豆:4 (初学一级) | 2013-11-09 13:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册