选择查询以删除非数字字符值并在SQL中获取最高值

时间:2018-01-10 12:36:45

标签: sql sql-server-2008-r2

选择查询以删除非数字字符值并获取最高值。

select stuff(Round, 1, patindex('%[0-9]%', Round)-1, '')  from Table_LKP_RoundInfo

我的Round专栏中有以下数据。

Round1
Round5
Round18
Round9

从上面选择查询我得到如下面的非数字列表

1
5
18
9

现在我需要来自上面4个值的最高值结果,例如最高值为18.我需要在上面的选择查询中输出为18。

3 个答案:

答案 0 :(得分:0)

为什么不替换Round;

select MAX(cast(REPLACE(Round, 'Round', '') as int)) MaxRound
from Table_LKP_RoundInfo

答案 1 :(得分:0)

你可以通过这个实现

select 
Max(CONVERT(int, stuff(Round, 1, patindex('%[0-9]%', Round)-1, '')))
from Table_LKP_RoundInfo

答案 2 :(得分:0)

只需使用substring() patindex()函数即可实现上述最大值

select max(substring(Round, PATINDEX('%[^ROUND]%', Round), LEN(Round))) 
from Table_LKP_RoundInfo