2017-03-17 45 views
0

我想分開兩列中的字符串。字符串(S)可以在不同lengh例如:子串SQL文胸

@string1 = (10)123514512(20)123412(30)123421523 
@string2 = (10)12313123123123(30)351(21)324FE324F 

這兩條線的結果將是:

(column1) |s (column2) |ss 
10  |s 123514512|ss 
20  |s 123412 |ss 
30  |s 123421523|ss 
10  |s 12313123123123|ss 
30  |s 351|ss 
21  |s 324FE324F|ss 

我試着打了一下用的子功能,但我沒有想法如何前進。任何建議?非常感謝你的時間和智慧。

回答

0

PATINDEX可能是你在找什麼。由於每個字符串中都有多個模式實例,因此一種方法是使用while循環: 查找左括號的第一個實例,然後查找右括號的第一個實例,然後使用子字符串。將您的指針設置爲該子字符串的長度。然後重複。

用法:

select PATINDEX('%[(]%',colname) as indexOfOpen, PATINDEX('%[)]%',colname) as indexOfClose from table 

這個答案請看:https://dba.stackexchange.com/a/41976

+0

非常感謝你的幫助,這是不完整的答案,但你把我的路。問候! – Octavio