【问题标题】:Select query to remove non-numeric characters value and get top value in SQL选择查询以删除非数字字符值并获取 SQL 中的最高值
【发布时间】:2018-01-10 12:36:45
【问题描述】:

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

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。

【问题讨论】:

  • 将其转换为整数,然后使用MAX聚合函数
  • 请给我答案将对我有所帮助。 @米塔尔

标签: sql sql-server-2008-r2


【解决方案1】:

你可以通过这个来实现

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      你为什么不替换Round;

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

      【讨论】:

      • 感谢您的支持,您的查询也给出了正确的结果,但我更喜欢米塔尔的答案。 @雨人
      猜你喜欢
      • 2013-09-08
      • 2016-01-26
      • 1970-01-01
      • 2013-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多