小编Stu*_*art的帖子

使用 SQL Server 将一列中的字符串中的多个值拆分为多个列

我在 SQL Server 中有一个表,它输出以下内容:

公司名称 公司编号 标签
第一比较有限公司 1 信贷经纪人;有限许可贷款人;保险中介
商业网 第456章 投资顾问;仅限信用经纪
慈善网 156789 不以营利为目的

我想拆分标签列中的值,以便每列只有一个标签,因此:

公司名称 公司编号 标签1 标签2 标签3
第一比较有限公司 1 信用经纪人 有限许可贷款人 保险中介
商业网 第456章 投资顾问 仅限信用经纪
慈善网 156789 不以营利为目的

我可以在 Excel 中使用分号作为分隔符手动执行此操作,然后调整标题,但这可以在 SQL Server 中完成吗?最终,我想要 SQL Server 中的视图来格式化数据,以便我可以使用 powershell 脚本生成 csv 并在电子邮件中发送。

我已经尝试了以下方法,我想我可能已经接近了,它只是在视图中不起作用:

with TagsDelimited_CTE AS
(select CompanyName, CompanyNumber, Value,
ROW_NUMBER() over(partition by CompanyName, CompanyNumber order by CompanyName, CompanyNumber) as RowNum
from  Source
CROSS APPLY
string_split(Tags,';') 
)
select CompanyName, CompanyNumber,
[1] as Tag1,
[2] as …
Run Code Online (Sandbox Code Playgroud)

sql sql-server delimiter multiple-columns

2
推荐指数
1
解决办法
8387
查看次数

标签 统计

delimiter ×1

multiple-columns ×1

sql ×1

sql-server ×1