当前位置:  开发笔记 > 数据库 > 正文

从varchar列中选择max int

如何解决《从varchar列中选择maxint》经验,为你挑选了2个好方法。

我试图从varchar列中检索包含数字和字符串的最大数字.我正在使用的数据示例:

BoxNumber
123
A5
789
B1

我需要从列中返回最大数字(在这种情况下为789),同时忽略A5和B1的非数字值.

我找到了使用自定义函数来解决问题的解决方案,但我需要一些可以执行即席查询而不依赖于自定义函数或过程的东西.



1> SQLMenace..:

你需要一个组合,因为isnumeric为以下事情返回1

select isnumeric('+'),isnumeric('5d2') 

你的where子句就像这样

WHERE VALUE NOT LIKE '%[a-z]%'
        AND ISNUMERIC(VALUE) = 1

create table #bla (value varchar(50))
insert #bla values('123')
insert #bla values('a5')
insert #bla values('789')
insert #bla values('b1')

SELECT MAX(CAST(value AS Int)) FROM #bla
WHERE VALUE NOT LIKE '%[a-z]%'
    AND ISNUMERIC(VALUE) = 1

我在这里写了关于这个ISNUMERIC麻烦



2> cmsjr..:

你可以试试

Select MAX(BoxNumber) from {table} where IsNumeric(BoxNumber) = 1

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有