Sql server 从SQL server中的varchar列中删除字符串

Sql server 从SQL server中的varchar列中删除字符串,sql-server,Sql Server,我有一个定义为varchar的列。sql server中是否有任何函数可用于仅包含列的数值并从中删除任何其他字符 例: 123abc--123 ab12c--12 ab45c--45您可以尝试以下方法: DECLARE @temp TABLE ( string NVARCHAR(50) ) INSERT INTO @temp (string) VALUES ('123abc'), ('ab12c'), ('ab45c?') SELECT SUBSTRING(

我有一个定义为varchar的列。sql server中是否有任何函数可用于仅包含列的数值并从中删除任何其他字符

例: 123abc--123

ab12c--12

ab45c--45

您可以尝试以下方法:

DECLARE @temp TABLE
(
    string NVARCHAR(50)
)

INSERT INTO @temp (string)
VALUES 
    ('123abc'),
    ('ab12c'),
    ('ab45c?')

SELECT SUBSTRING(string, PATINDEX('%[0-9]%', string), PATINDEX('%[0-9][^0-9]%', string + 't') - PATINDEX('%[0-9]%', 
                    string) + 1) AS Number
FROM @temp

问题解决了吗?。我无法添加答案,因为主题已关闭。如果没有,我将提供我在SPI中使用的函数。问题已作为副本关闭,@samir。不能向已关闭的问题添加答案。如果你真的想贡献你的答案,你最好选择其中一个标记的重复项(其中一个是高度活跃的问题)。