我在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中,但会采用基于电子表格的答案....
谢谢,
巫毒
答案 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位数序列
注意:这是一个较旧的功能,所以你可能需要玩一点,但它应该没问题