[英]Export from Excel to SQL Server with Excel Column of Multiple Values
盡管我有一些SQL技能,但我對數據庫設計還是比較陌生的。 我有一個要上傳到SQL Server的Excel工作表。 問題是我在Excel中有一列,其中有多個用“ /”分隔的值。
例如:
Fruit Banana/Pear/Orange Pear/Raspberry/... Banana
...
我想基於“ /”拆分單元格,這很好。 然后將值放入SQL Server中的表中。 但是,Excel單元格中沒有定義的“水果”數量,因此我需要允許多個表字段。
有人對此有建議嗎? 我編寫了一個ADODB連接,以便從Excel導出到SQL Server,但是不知道如何處理此單元格。
謝謝
另一種選擇是在加載數據后拆分數據。 例如
Declare @YourTable table (ID int,Fruit varchar(150))
Insert into @YourTable values
(1,'Banana/Pear/Orange'),
(2,'Pear/Raspberry/Apple'),
(3,'Banana')
Select A.ID
,B.Key_Value
From @YourTable A
Cross Apply (Select * from [dbo].[udf-Str-Parse](A.Fruit,'/')) B
退貨
ID Key_Value
1 Banana
1 Pear
1 Orange
2 Pear
2 Raspberry
2 Apple
3 Banana
UDF
CREATE FUNCTION [dbo].[udf-Str-Parse] (@String varchar(max),@Delimeter varchar(10))
--Usage: Select * from [dbo].[udf-Str-Parse]('Dog,Cat,House,Car',',')
-- Select * from [dbo].[udf-Str-Parse]('John Cappelletti was here',' ')
Returns @ReturnTable Table (Key_PS int IDENTITY(1,1), Key_Value varchar(max))
As
Begin
Declare @XML xml;Set @XML = Cast('<x>' + Replace(@String,@Delimeter,'</x><x>')+'</x>' as XML)
Insert Into @ReturnTable Select ltrim(rtrim(String.value('.', 'varchar(max)'))) FROM @XML.nodes('x') as T(String)
Return
End
設計表時,它必須具有定義的列數。
最簡單的方法是為每個組分配一個ID。
ID Fruit
1 Banana
1 Pear
1 Orange
2 Pear
2 Raspberry
3 Banana
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.