Sql 如何使用子字符串从字符串中提取长度可变的数字?

Sql 如何使用子字符串从字符串中提取长度可变的数字?,sql,sql-server,Sql,Sql Server,我需要从字符串列中提取数字。字符串值中数字的长度不是固定的,但以特殊符号下划线(\结尾)。我已尝试使用子字符串,但未成功。请建议在下面列的示例数据中使用 示例字符串: FilePath 1002001_Inv_QCR.tiff 100101_Inv_MAN.Jpg SELECT SUBSTRING(Filepath,1,6) from Tblfileinfo 我想,以下几点可能会有所帮助: SELECT SUBSTRING(Filepath, 1, CHARINDEX('_',

我需要从字符串列中提取数字。字符串值中数字的长度不是固定的,但以特殊符号下划线(\结尾)。我已尝试使用子字符串,但未成功。请建议在下面列的示例数据中使用

示例字符串:

FilePath
1002001_Inv_QCR.tiff
100101_Inv_MAN.Jpg



SELECT SUBSTRING(Filepath,1,6)  from Tblfileinfo

我想,以下几点可能会有所帮助:

SELECT
    SUBSTRING(Filepath, 1, CHARINDEX('_', Filepath) - 1)
FROM
   Tblfileinfo

我想,以下几点可能会有所帮助:

SELECT
    SUBSTRING(Filepath, 1, CHARINDEX('_', Filepath) - 1)
FROM
   Tblfileinfo
(注意:这也适用于数字不在名称开头的情况)

具体到提供的表格:

SELECT SubString(Filepath, PatIndex('%[0-9]%', Filepath), CharIndex('_', Filepath, PatIndex('%[0-9]%', Filepath)) - PatIndex('%[0-9]%', Filepath))
FROM Tblfileinfo
(注意:这也适用于数字不在名称开头的情况)

具体到提供的表格:

SELECT SubString(Filepath, PatIndex('%[0-9]%', Filepath), CharIndex('_', Filepath, PatIndex('%[0-9]%', Filepath)) - PatIndex('%[0-9]%', Filepath))
FROM Tblfileinfo

数字总是在字符串的开头?文件路径的内容是否遵循固定模式?是否有多个文件名/数字存储在一个条目中?如果som需要某种循环、递归等。如果只是一个,则子字符串表达式可以工作。数字始终位于字符串的开头?文件路径的内容是否遵循固定模式?是否在单个条目中存储多个文件名/数字?如果som需要某种循环、递归等。如果它只是一个,那么子字符串表达式可以工作。感谢您的及时响应,这解决了我的问题。如果输入像Inv_100200_Man.txt.oookaay,soooryyy这样,如何提取数字。有趣的是,我已经回答了@Simhadri提出的后续问题。。。(尽管我的回答显然是误读了原来的问题)。我受到了适当的惩罚,并将试图阻止再次激怒上帝。总而言之,答案是错误的还是我只是因为孩子气而受到惩罚?感谢您的及时回复,这就解决了我的问题。如果输入是这样的Inv_100200_Man.txt.oookaay,soooryyy,如何提取数字。有趣的是,我已经回答了@Simhadri提出的后续问题。。。(尽管我的回答显然是误读了原来的问题)。我受到了适当的惩罚,并将试图阻止再次激怒上帝。所有这些都说明了,答案是坏的还是我只是因为孩子气而受到惩罚?