Select 查询删除非数字字符值并获取 SQL 中的最高值

Select query to remove non-numeric characters value and get top value in SQL

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

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

我的 Round 列中有如下数据。

Round1
Round5
Round18
Round9

从上面 select 查询我得到如下非数字列表

1
5
18
9

现在我需要来自以上 4 个值的最高值结果,例如最高值是 18。我需要在上面的 select 查询中输出 18。

为什么不替换 Round;

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

你可以通过这个实现

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

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

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