我们使用自动功能将电子邮件从outlook邮件帐户发送到SQL Server 2014数据库中的表。
表格布局:
Column_name Type
Mail_Id uniqueidentifier
Mail_Sender nvarchar
Mail_Sent datetime
Mail_Received datetime
Mail_Subject nvarchar
Mail_Body nvarchar我希望将Mail_body行中的数据拆分到下表中,并将其拆分到正确的列中(见下文)
Column_name Type
Client_ID uniqueidentifier
Client_Name nvarchar
Client_Surname nvarchar
Email_Address nvarchar
Phone_Number nvarchar
DOB nvarchar
Smoker nvarchar
AOCR nvarchar
Term nvarchar
BTTC nvarchar
Credit_User nvarchar
Insurance_Type nvarchar
Premium nvarchar
Paid_Commission moneyMail_body文本字符串示例=
Sent from my iPhone
Begin forwarded message:
Product: Life & Critical Illness
Name: XXXXXX
Email Address: XXXXXXXX@yahoo.com <mailto:XXXXXXXX@yahoo.com>
Phone: 07XXXXXXXX
Date of Birth: XX/XX/XXXX
Smoker: Yes
Amount of cover required:
Term:
Best Time to Call: Now/ASAP
Credit User: XXXXXXXXXXX-XXXXXXXXXXX-XXXXXXXXXX希望有人能帮上忙。
发布于 2015-11-17 22:25:57
因此,如果您的数据没有经过验证,那么任何解决方案都会出现问题(如果Name:行是Name: Email Address: (意味着用户输入了Email Address:作为他们的名字)呢?
假设你有某种检查,CHARINDEX是一个你可以使用的函数。
INSERT INTO NewTable
(FIELDS)
SELECT
...
SUBSTRING(Mail_Body,CHARINDEX('Product:', Mail_Body,0),CHARINDEX('Name:', Mail_Body,0)-1),
...
FROM OldTable请注意,对于长字符串,创建一个通过字符串跟踪以前的charindex值的存储过程可能更有效,这样您就不必一直调用相同的函数。
https://msdn.microsoft.com/en-us/library/ms186323.aspx https://msdn.microsoft.com/en-ca/library/ms187748.aspx
https://stackoverflow.com/questions/33758678
复制相似问题