我有一个看起来像这样的表:
ProductId, Color
"1", "red, blue, green"
"2", null
"3", "purple, green"
我想将其扩展为:
ProductId, Color
1, red
1, blue
1, green
2, null
3, purple
3, green
实现这一目标的最简单方法是什么?过程中没有循环是否可能?
看看这个函数。我在 Oracle 中使用了类似的技巧来拆分和转置数据。循环数据,将解码值插入到临时表中。常见的事情是,MS 会让您即时执行此操作,而 Oracle 需要一个显式的临时表。
MS SQL 拆分函数 http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=50648
更好的分割功能 http://www.devx.com/tips/Tip/20009
作者编辑:这效果很好。最终代码如下所示(创建 split 函数后):
select pv.productid, colortable.items as color
from product p
cross apply split(p.color, ',') as colortable
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)