2010-07-15 7 views
0

SQL 데이터베이스에서 내 보낸 Excel의 열이 있습니다.특정 번호를 얻는 방법

열 이렇게 읽어

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

참조 번호 : 654321, 계정 : XYZ ABC와; comment : (autopac 에이전트에) - 해당 열에 대한 모든 레코드에서 다릅니다.

모든 레코드에 대해서만 참조 번호를 얻어야합니다. 어떻게해야합니까? 기본 방법은 SQL에 있지만 그런 다음 아래 작업을해야 MS SQL 서버를 사용하는 경우 ....

감사합니다,

부두

+0

첫 번째 "("와 첫 번째 ")에서 문자열을 가져 오는 것입니다 – VoodooChild

답변

2

를 스프레드 시트를 기반으로 대답을 걸릴 것이다. 하지만 문자열 기능은 RDBMS마다 다를 수 있습니다. 질문에서 사용중인 기술을 지정하는 것이 좋습니다.

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

SUBSTRING의 세 번째 인수는 길이가 아닌 끝 인덱스 여야합니까? – Mark

+0

캐치를 가져 주셔서 감사합니다. 나는 그것을 바꿀 것이다 –

+0

나는 Sybase 11을 사용하고있다. 그리고 이것은 일을하는 것 같다, 정말 고마워! – VoodooChild

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 

당신은 그냥 공개하고 내 첫 6 자리의 순서를 얻을 것 즉,이
=RegularExpression(A2,"[0-9]{6}") 처럼 사용할 수 있습니다 셀 A2
참고 : 이것은 이전 기능이므로 조금 놀아야 할 수도 있지만 괜찮을 것입니다.

관련 문제