SQL拆分字符串并插入到表中



我正在寻找一些关于下面问题的指导。

我有一个有两列OP_IDvalue的表。

value列是一个字符串,其中有两个分隔符:逗号和行尾的散列。

当前表名为Torque

<表类> OP_ID 价值 tbody><<tr>9308231, 0.45, 0.5, 0.55,新墨西哥州,# 2,0.25,0.3,0.35,新墨西哥州。#9308241, 0.45, 0.5, 0.55,新墨西哥州。#

这是一个很大的字符串分割和重新聚合问题。下面假设row_number() over order by (select NULL))返回正确的序号。

这在实践中往往是正确的,但是微软并没有在文档中确认它总是正确的。我应该引用这个:Aaron Bertrand声称这是真的(在这里)。我不喜欢依赖未记录的特性,但是在这种情况下,如果存在重复的值,那么另一种排序方法将会失败。

select t.*, s.value, s2.*
from t cross apply
string_split(t.value, '#') s cross apply
(select max(case when seqnum = 1 then s2.value end) as Tool,
max(case when seqnum = 2 then s2.value end) as R_lower_lim,
max(case when seqnum = 3 then s2.value end) as R_nominal_torque,
max(case when seqnum = 4 then s2.value end) as R_Upper_lim,
max(case when seqnum = 5 then s2.value end) as units
from (select s2.value,
row_number() over (order by (select null)) as seqnum
from string_split(s.value, ',') s2
) s2
) s2
where s.value <> '';

这是一个db<>小提琴

相关内容

  • 没有找到相关文章

最新更新