SQL拆分函数和导入的数据

时间:2012-12-16 21:45:45

标签: sql sql-server-2008

好的,我有一个数据库表,数据被我所鄙视的这个可怕的小程序抛弃,但目前无法改变。它中包含商家数据,名称,地址和一组以管道分隔的类别。我需要的是一个简洁的方法来分解这些,所以每个商家/类别对我有一行。从那里,我可以轻松地将其纳入新的数据结构。这需要在短时间内成为可重复的过程。我意识到最佳解决方案是摆脱这种结构,但我已经破坏了我的大脑,试图弄清楚如何在sql中干净利落地做到这一点。

我已经在数据库中有一个函数,它将拆分分隔的字符串并返回一个表。

这是在sql server 2008,btw。

编辑(清晰度_ 基本上,以下可能是商家(附带类别 - 其他字段为简单起见而进行了编辑。此处使用逗号分隔字段分隔符。)

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

我需要的是:

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

1 个答案:

答案 0 :(得分:0)

如果您已经编写了一个分割字符串并返回表的函数,则可以使用触发器。

在“horrid”程序吐出数据的表上的INSERT上创建一个触发器。然后触发器将获取未格式化的数据并填充两个干净的表(我认为在您的情况下,您应该有两个表:一个是商家,另一个是产品,使用MerchantID使用一对多关系链接)。

在这种情况下,您可以将带有未格式化数据的表用作“脏”表。在“可怕”程序导入文件后,您可以直接清理。

如果您需要有关触发器的帮助,请发表评论