【问题】
现在有数据表”测试“,效果如下,要把第一行的数据转换成第二行开始的样子,请问怎样实现?
房号 合同号
401、406、408、411、412、413、416 2013-15
401 2013-15
406 2013-15
408 2013-15
411 2013-15
412 2013-15
413 2013-15
416 2013-15
create table 测试
(房号 nvarchar(555),
合同号 nvarchar(55))
go
insert into 测试
select ‘401、406、408、411、412、413、416’,‘2013-15’
go
【回答】
拆分字符串在 SQL 中实现很麻烦,用 SPL 一行搞定:
| A | |
| 1 | $select * from 测试 |
| 2 | =A1.news(房号.split("、");~: 房号, 合同号 ) |
在SQL中,将数据表中的一行数据,特别是包含逗号分隔的字符串,转换为多行数据是一项挑战。原始数据包含一个房号列表和合同号,目标是将房号逐一列出,每行对应一个房号和合同号。使用SPL语言可以简化这个过程,通过split函数拆分房号字符串并生成新的行。
686

被折叠的 条评论
为什么被折叠?



