You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

编写SQL查询去除非数字字符并获取数值最大值的方法

解决方案

很简单,只需要把你原来用来提取数值的逻辑包裹在MAX()聚合函数里,同时记得把提取到的字符串转成整数类型(避免字符串排序导致的错误),就能直接得到最大值了。

完整的SQL语句如下:

SELECT MAX(CAST(stuff(Round, 1, patindex('%[0-9]%', Round)-1, '') AS INT)) AS MaxRoundNumber
FROM Table_LKP_RoundInfo

关键细节说明:

  • 你的原stuff(Round, 1, patindex('%[0-9]%', Round)-1, '')部分已经能正确提取出Round字段里的数字字符串(比如Round18'18'
  • 必须用CAST(... AS INT)把提取到的字符串转为整数类型:如果直接对字符串取MAX,会按字符顺序比较,导致'9'被判定为比'18'大,这显然不是我们想要的结果
  • MAX()函数会对所有转换后的整数进行聚合计算,直接返回最大的那个值(也就是你要的18)

内容的提问来源于stack exchange,提问作者user3754858

火山引擎 最新活动