SQL 仅从 varchar 中获取数值

标签 sql sql-server sql-server-2008 tsql

假设我有一些如下所示的字段:

abd738927
jaksm234234
hfk342
ndma0834
jon99322

类型:varchar。

如何仅从中获取数值来显示:

738927
234234
342
0834
99322

尝试过子字符串,但数据长度不同,并且由于无法转换而无法进行强制转换,有什么想法吗?

最佳答案

这是 PATINDEX 的示例:

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

这假设 (1) 该字段将有一个数字,(2) 这些数字全部分组在一起,并且 (3) 数字后面没有任何后续字符。

关于SQL 仅从 varchar 中获取数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11333078/

相关文章:

java - 如何在 sql-server 数据库表上构建自由流搜索?

sql-server - SQL Server 是否具有类似于 Oracle Streams Advanced Queuing 的功能?

sql - 如何遍历XML中的所有节点-SQL 2008

sql - 在数据库中标记重复项

sql - SQL 中空列的总和

sql-server - SQL Server : splitting a row into multiple rows from OUTPUT clause

sql-server - SQL复制: Access snapshot folder is denied (SQL Server 2008)

sql - 存储过程中的动态 sql 无法获取所需的结果

mysql - 为什么 MAX() 不会选择相应的最大值行详细信息?

sql - postgres DB 中的 Concat 列数据