SSIS:如何拆分Excel单元格的值转换为SQL列
问题描述:
我有一个Excel,像这样的数据文件:SSIS:如何拆分Excel单元格的值转换为SQL列
ID | FieldA | FieldB
1 ABC A, B
2 FGH W, Z
3 KLÑ G, K
我想要做的是使用SSIS并将此数据导入到SQL表。唯一的问题是,这个表中有一个这样的结构:
ID | FieldA | FieldB1 | FieldB2
所以,我需要做的是在Excel中拆分“FieldB”栏目,并把它变成FieldB1和FieldB2在SQL。
其结果将是这样的:
ID | FieldA | FieldB1 | FieldB2
1 | ABC | A | B
2 | FGH | W | Z
3 | KLÑ | G | K
就如何实现这一目标的任何想法?
答
尽量选择相关的范围,然后运行以下命令:
Sub SplitColumn()
Dim strArr() as String
Dim cell as Range
For Each cell In Selection
cell.offset(0, 1).resize(1,2).value = split(cell.value,", ")
Next cell
End Sub
现在,复制和任何需要的地方贴上您的资料。
非VBA的选择:在细胞D2 输入以下公式:
=LEFT(C2,FIND(",",C2)-1)
而在E2:
=RIGHT(C2,LEN(C2)-FIND(", ",C2)-1)
和自动完成柱的其余部分。
答
除非我错过了一些东西,我只是跳过标题行,让它正确导入后续数据。请花点时间分配列名并完成。
答
你可以使用派生列,并添加两个新列。第一列表达式应该是这样的:
SUBSTRING([FieldB],1,FINDSTRING([FieldB],",",1) - 1)
,第二个是这样的:
SUBSTRING([FieldB],FINDSTRING([FieldB],",",1) + 1,LEN([FieldB])- FINDSTRING([FieldB],"_",1))