我有一个包含以下示例值的表:
ID VALUE
1 |856|421|
2 |123|795|7125|
3 |96412|85251|2245|
4 |4845|88422|9155|15154|
5 |1165|98742|
我怎样才能写一个 select 语句,结果将是:
ID Value
1 |856|
1 |421|
2 |123|
2 |795|
2 |7125|
3 |96412|
3 |85251|
3 |2245|
4 |4845|
4 |88422|
4 |9155|
4 |15154|
5 |1165|
5 |98742|
唯一不变的是每组数字总是包含在 | 之间。人物。有任何想法吗?
我们需要保留管道“|”。
我从StackOverflow 上的这个答案中借用了这个拆分字符串函数。由于您的数据包含在使用中,因此
|
您必须仅选择数据 <> '' 中的那些值,最后使用 CONCAT 函数再次添加定界符。dbfiddle在这里
这也可以通过递归 SQL 来完成,尽管我不能说这是否是个好主意。数据准备:
递归查询:
结果: