sql-server - 用 substring 和 findstring 分隔数据

标签 sql-server ssis etl ssis-2008 derived-column

我有一个问题,我认为这很简单,但我才刚刚开始,我有一个 .txt 文件,其中包含

Kayle;Osvorn;35;4399900433

我的这些列是什么:First name;Last name;Age;Phone

我需要通过将派生列转换为 ETL 的过程将它们分开,但目前我只能提取名字和姓氏,其余的我不知道如何继续。

前两列我有这个

Name = SUBSTRING(CustomerData,1,FINDSTRING(CustomerData,";",1) - 1)
Last Name = SUBSTRING(CustomerData,FINDSTRING(CustomerData,";",1) + 1,LEN(CustomerData))
Age = ?
Phone = ?

有谁知道表达式会怎样?

最佳答案

无需在 SSIS 包中使用派生列转换。相反,在平面文件连接管理器中,将字段分隔符定义为分号 ; 而不是默认的逗号“,”。表明它应该......识别列,现在你的 CustomerData 的单列消失了,你有很好的分隔列。

如果您有列标题,它应该将其拉出。否则,您将需要不指定 header ,然后进入高级选项卡并为它们提供友好的名称。

关于sql-server - 用 substring 和 findstring 分隔数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62618135/

相关文章:

sql - 使用 LAG() 函数查找过去的值

sql-server - Entity Framework 5 TSQL与SQL 2005调用存储过程不兼容

sql - 无法在 SQL Server 中找到百分比

c# - 以编程方式创建没有源或目标的数据流任务

csv - SSIS 将空白日期时间列转换为 NULL 并解析输入

sql-server - 包部分控制流程中的动态连接

Java存储过程运行缓慢

sql-server - 如何找到表中填充的内容?

sql-server - 在 SSIS 中选择忽略失败时忽略的行会发生什么?

sql - 如何确定每个来源中的记录是否代表同一个人