如何获得某些数字

时间:2010-07-15 01:51:36

标签: sql excel spreadsheet

我在excel中有一个从sql数据库导出的列。

列如下:

'Payment Funds: (654321) Company charged Public - Payment of transfer.  Charged from account xyz to abc (into autopac agent).'

参考编号:654321,帐号:xyz和abc; comment :(进入autopac代理) - 对于该列的所有记录都不同。

我只需要为所有记录获取参考号,我该怎么做呢?首选方法是在sql中,但会采用基于电子表格的答案....

谢谢,

巫毒

2 个答案:

答案 0 :(得分:2)

如果您使用的是MS SQL Server,则以下内容应该有效。但是,字符串函数可以在RDBMS之间变化。在问题中指定您正在使用的技术是个好主意。

SELECT
    SUBSTRING(col, CHARINDEX('(', col) + 1, CHARINDEX(')', col) - CHARINDEX('(', col) - 1)
FROM
    Some_Table

答案 1 :(得分:0)

试试这个,它是Excel的正则表达式函数:

Private Function RegularExpression(SearchString As String, Pattern As String) As String 

    Dim RE As Object, REMatches As Object 

    'Create the regex object'  
    Set RE = CreateObject("vbscript.regexp") 
    With RE 
        .MultiLine = False 
        .Global = False 
        .IgnoreCase = True     
        'set the search pattern using parameter Pattern' 
        .Pattern = Pattern  
    End With 

    'Search for the pattern'  
    Set REMatches = RE.Execute(SearchString)  
    If REMatches.Count > 0 Then 
        'return the first match' 
        RegularExpression = REMatches(0)  
    Else 
        'nothing found, return empty string' 
        RegularExpression = "" 
    End If 

End Function 

你可以公开并像这样使用它 =RegularExpression(A2,"[0-9]{6}") 这将获得单元格A2中的前6位数序列 注意:这是一个较旧的功能,所以你可能需要玩一点,但它应该没问题