胸罩中的子串SQL

时间:2017-03-17 23:30:22

标签: sql-server-2012 substring

我想在两列中分隔一个字符串。字符串可以是不同的长度,例如:

@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

我尝试使用子字符串函数进行一些操作,但我不知道如何继续前进。有什么建议吗?非常感谢你的时间和智慧。

1 个答案:

答案 0 :(得分:0)

PATINDEX可能就是你要找的东西。由于每个字符串中有多个模式实例,因此一种方法是使用while循环: 找到左括号的第一个实例,然后找到右括号的第一个实例,然后使用substring。将指针设置为该子字符串的长度。然后重复一遍。

用法:

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

看一下这个答案:https://dba.stackexchange.com/a/41976