【问题标题】:SQL obtain only the numerical values from a varchar (Substring)SQL 仅从 varchar(子字符串)中获取数值
【发布时间】:2014-11-18 20:36:24
【问题描述】:

我有这个 varchar 字段;

Substrg
--------
38-40week
8month
7
40
38-40week

我只想获取数字,例如:

38-40
8
7
40
38-40

我试过了,但它不起作用......:

select SUBSTRING(Substrg, PATINDEX('%[0-9]%', Substrg), LEN(Substrg))

我该怎么办?谢谢

【问题讨论】:

  • PATINDEX() 是一个 SQL Server 函数,但您的问题被标记为 MySQL。您真正使用的是什么数据库?另外,嵌入的- 什么时候变成数字字符了?
  • 如果是 SQL Server,请参见 stackoverflow.com/questions/9636045/… 使用 select dbo.fnRemovePatternFromString(fld, '%[^-0-9]%')
  • 你可以扩展mysql使其支持正则表达式,查看this了解更多信息

标签: mysql sql substring varchar patindex


【解决方案1】:
select  replace ('38-40week', SUBSTRING('38-40week', PATINDEX('%[a-z]%', '38-40week'), 
LEN('38-40week')),'')

【讨论】:

    猜你喜欢
    • 2012-07-05
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 2012-11-01
    • 2014-01-24
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多