在SQL中拆分数据(分隔数据字符串)

时间:2017-03-06 16:02:32

标签: sql validation split multiple-columns

我希望在SQL中分割一些数据。我们目前在SQL中使用数据库来存储数据。例如以下信息将存储在名为{Script.Details01}的数据库中。

{Script.Details01} = J Bloggs先生和M博士小姐

我们要做的是验证我们的数据,但是由于其他部门手动输入数据,我们需要通过这两个名称并将它们分成两个不同的数据库。例如{Script.Details02}{Script.Details03}.

由于我们需要验证的数据,我们已尝试将它们设置为cols。

"SELECT '{Script.Details01}' as Col1,
'{Script.Details01}' as Col2,
'{Script.Details01}' as Col3"

Col1 Part1 = Item('Col1') Entry(1,'')

无论如何我们可以拆分数据,以便J Bloggs先生进入详细信息02,M博士小姐会进入03吗?我们可以存储输入的数据并将其拉入问题,消息或根据答案要求它沿着某条路线前进。

J Bloggs先生和M博士小姐 {Script.Details02} {Script.Details03}

P.S。我们不关心“和”,并希望这之间的一切。 如果我感到困惑,任何人都可以随时告诉我,我会尽量更清楚:)

1 个答案:

答案 0 :(得分:0)

这是一个可能的解决方案。这不是最简洁,最简洁的编写方式,您需要对其进行修改以使用您的表名,目标列名/数据库等,但它应该为您提供一个良好的起点。请记住,如果您的数据录入人员对于他们输入的名称对不完全一致,那么您将遇到麻烦。您可能需要使用更复杂的技术来清理剩余的信息。

 SELECT
 LEFT({Script.Details01}, CHARINDEX(' and ', {Script.Details01})) AS FirstName,
 RIGHT({Script.Details01}, (CHARINDEX(' and ', {Script.Details01}) + 5)) AS SecondName
 FROM MyTable

有关CharIndex以及左右功能的更多信息,请参阅这些文章:

https://docs.microsoft.com/en-us/sql/t-sql/functions/charindex-transact-sql

https://social.technet.microsoft.com/wiki/contents/articles/17948.t-sql-right-left-substring-and-charindex-functions.aspx