首页 > 解决方案 > Sybase SQL:如何从 varchar 值中提取数字?

问题描述

我有一堆值(varchars),部分由字母(其中字母数> = 0)和部分数字组成。

例如:

abc-123
defjke12345 
987654

sybase sql中是否有一个函数可以提取由数字组成的值部分?

继续给出的例子,

abc-123          should become 123
defjke12345      should become 12345 
987654           should stay   987654

如何在 sybase sql(过程语言)中实现这一点?

标签: sqlsybase

解决方案


用子字符串和模式索引试试这个:

DECLARE @yourfield VARCHAR(100)
SELECT  @yourfield ='defjke12345'

SELECT SUBSTRING(@yourfield , PATINDEX('%[^0-9][0-9]%', @yourfield ) + 1, 
PATINDEX('%[0-9][^0-9]%', @yourfield ) - PATINDEX('%[^0-9][0-9]%', @yourfield ))

推荐阅读