【发布时间】:2012-07-05 04:38:26
【问题描述】:
假设我有如下几个字段:
abd738927
jaksm234234
hfk342
ndma0834
jon99322
类型:varchar。
如何仅从中获取数值来显示:
738927
234234
342
0834
99322
尝试过子字符串,但数据长度不同,并且由于无法转换而无法转换,有什么想法吗?
【问题讨论】:
-
是的,patindex,假设所有数字都分组在一起,就像你的例子一样,否则你可能需要一个函数。
-
您必须在 SQL 中执行此操作还是允许查询后操作?如果是这样,那么我将使用正则表达式来提取要显示的数字;我粗略搜索了一下,没有发现任何可以在 SELECT 和 FROM 之间使用正则表达式的东西。
-
@SelectDistinct - 我的答案中缺少什么?您是否使用以下代码测试了已接受的帖子
DECLARE @a VARCHAR(1212) = 'eded123wsws' SELECT SUBSTRING(@a, PATINDEX('%[0-9]%', @a), LEN(@a))
标签: sql sql-server sql-server-2008 tsql