如何使用 SSIS 在 SQL Server 中创建分隔符
Posted
技术标签:
【中文标题】如何使用 SSIS 在 SQL Server 中创建分隔符【英文标题】:How to create a delimited in SQL Server using SSIS 【发布时间】:2021-03-07 13:44:15 【问题描述】:这是表格,我只想要 SQL Server 中“>”之后的最后一个字符串,没有空格
表 SQL Server 分隔:
Sports & Outdoors › Sports & Fitness › Leisure Sports & Game Room › Outdoor Games & Activities › Balls › Dodgeballs
Sports & Outdoors › Sports & Fitness › Leisure Sports & Game Room › Outdoor Games & Activities › Balls › Dodgeballs
Sports & Outdoors › Sports & Fitness › Accessories › Inflation Devices & Accessories
Sports & Outdoors › Sports & Fitness › Exercise & Fitness › Accessories › Jump Ropes
这是我需要的结果:
Dodgeballs
Dodgeballs
Inflation Devices & Accessories
Jump Ropes
这是xls中的函数:
=trim(index(SPLIT(A1,"›"),1,COUNTA(SPLIT(A1,"›"))))
这是 SSIS:
TRIM(SUBSTRING([Categories: Tree],FINDSTRING([Categories: Tree],"›",1),LEN([Categories: Tree])))
【问题讨论】:
由于某种原因,当我从 MSSQL 复制数据时,它复制错误;这就是它的样子drive.google.com/file/d/1MCiYI_CjHr7WZzw5ozxDtwZpOMfh7oMw/… 【参考方案1】:在 SQL Server 中,您可以使用:
select t.*,
right(tree, charindex(' › ', reverse(tree)) - 1)
from t;
Here 是一个 dbfiddle。
【讨论】:
@Chriswinter 。 . .如果这回答了您的问题,您可以接受答案。【参考方案2】:所以你正在使用 SSIS Derived Column 转换。
两个 SSIS 表达式函数的组合将产生所需的内容:TOKEN()
和 TOKENCOUNT()
。加上最后的TRIM()
函数
对于 SSIS 变量:
TRIM(TOKEN(@[User::fileName], ">", TOKENCOUNT(@[User::fileName], ">")))
对于 SSIS 管道中的列:
TRIM(TOKEN(ColumnName, ">", TOKENCOUNT(ColumnName, ">")))
【讨论】:
这是我在 SSIS 中使用的,非常感谢 @Chriswinter,很高兴听到建议的解决方案对您有用。请不要忘记将其标记为答案。以上是关于如何使用 SSIS 在 SQL Server 中创建分隔符的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 C# 找出安装在 SQL Server 中的 SSIS?
如何将 SQL Server 2008 R2 SSIS 包升级到 SQL Server 2016?