2012-12-16 39 views
0

好吧,我有一個數據庫表,其中數據被我鄙視這個可怕的小程序傾倒,但目前無法改變。它包含商戶數據,名稱,地址和一組管道分隔的類別。我需要的是一種乾淨的方式將它們分開,因此我爲每個商家/類別對分配一行。從那裏,我可以很容易地將其納入新的數據結構。這需要在短時間內成爲可重複的過程。我意識到最佳的解決方案是擺脫這種結構,但是我試圖弄清楚如何在sql中乾淨地做到這一點。SQL Split功能和導入的數據

我已經在數據庫中有一個函數來分割一個分隔字符串並返回一個表。

這是在SQL Server 2008中,順便說一句。 。

Edit(對於clarity_ 基本上,下面可能是一個商人(與類別連接 - 絕密爲了簡單等領域使用逗號這裏字段分隔符)

Jimbo's Bait Shoppe, Bait|Sports Gear|Sandwiches 

我需要的是:

Jimbo's Bait Shoppe, Bait 
Jimbo's Bait Shoppe, Sports Gear 
Jimbo's Bait Shoppe, Sandwiches 
+0

請您分享一下輸出或屏幕截圖的片段嗎? – thegrandchavez

回答

0

如果你已經寫了分割字符串,並返回該表中可以使用觸發器的功能。

在「horrid」程序吐出數據的表上創建INSERT觸發器。然後,觸發器將採取未格式化的數據並填充兩個乾淨的表格(我認爲在您的情況下,您應該有兩個表格:一個是商家,另一個是使用MerchantID使用一對多關係鏈接的產品)。

在這種情況下,您可以將具有未格式化數據的表用作「髒」表。在「horrid」程序導入文件後,您可以直接清理。

如果您需要觸發幫助,請發表評論

+0

我最終在這裏做了交叉應用的事情。到目前爲止,它看起來有效。三四個其他的討厭的問題,我會在這個可怕的計劃或不。 http://stackoverflow.com/questions/6392340/sql-server-2008-split-multi-value-column-into-rows-with-unique-values 但我標記你的答案,因爲這實際上會一直是一個更清潔的方法。 –