我试图将包含多个电子邮件地址数据的单个字符串拆分为三个变量。字符串用 ; 标记电子邮件地址的开始/结束。性格。
一个示例字符串是:
'joebloggs@gmailcom;jimbowen@aol.com;dannybaker@msn.com'
我目前的代码如下:
DECLARE @Email VARCHAR(100),
@Email2 VARCHAR(100),
@Email3 VARCHAR(100)
SET @Email = 'joebloggs@gmailcom;jimbowen@aol.com;dannybaker@msn.com'
SET @Email2 = SUBSTRING(@Email, CHARINDEX(';', @Email)+1, LEN(@Email))
SET @Email3 = SUBSTRING(@Email, CHARINDEX(';', @Email)+1, LEN(@Email))
SET @Email = SUBSTRING(@Email, 1, CHARINDEX(';', @Email)-1)
不幸的是,这似乎不起作用。有人可以指出我哪里出错了,我应该怎么做才能解决我的问题?
提前致谢。
最佳答案
假设总是有 3 个电子邮件地址 - 以下似乎可行;
DECLARE @Email VARCHAR(100),
@Email2 VARCHAR(100),
@Email3 VARCHAR(100)
SET @Email = 'joebloggs@gmailcom;jimbowen@aol.com;dannybaker@msn.com'
SELECT @Email = LEFT(@Email, CHARINDEX(';', @Email) - 1)
,@Email2 = SUBSTRING (
@Email,
CHARINDEX(';', @Email) + 1,
CHARINDEX(';', @Email, CHARINDEX(';', @Email) + 1) - LEN(LEFT(@Email, CHARINDEX(';', @Email) )) - 1
)
,@Email3 = RIGHT(@Email, CHARINDEX(';', @Email)-1)
关于sql - 将一个 SQL 字符串拆分为多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23521773/