我在 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)