【发布时间】:2014-01-20 20:02:40
【问题描述】:
我有一个表 tab1,其中有一列 col1 具有复合 alpha-then-numeric 值,如下所示:
abc123
xy45
def6
z9
我需要在查询中将值提取为单独的列,数字部分位于整数数据类型的列中。
如果这两个值的开始和结束位置一致,则可以使用substring() 完成这项工作,因为您可以看到数字部分的开始位置不同。
有没有一种优雅的方法来解决这个问题,或者必须使用正则表达式匹配来通过每个可能的起点的一系列联合来分隔案例,或者在一个巨大的案例语句中汇总?
【问题讨论】:
-
@mrcoder 我寻求仅 SQL 的解决方案。您的链接适用于应用程序代码解决方案
-
查看我写的答案here - 只需删除
LENGTH部分,你就会得到你想要的。
标签: mysql sql parsing alphanumeric