【发布时间】:2021-05-13 14:48:09
【问题描述】:
我有一列存储多个用分号分隔的电子邮件,如下所示:
| Email |
| -----------------------------|
| abc@y.aa; abc@z.bb |
| pqr@y.bb; pqr@x.cc; pqr@z.dd |
| xyx@y.dd; xyx@z.pp |
我希望使用分隔符分号拆分电子邮件并将它们存储在不同的列中。
我尝试了一些字符串命令,但没有提供合适的结果
REVERSE(PARSENAME(REPLACE(REVERSE(Email), ';', '.'), 1)) AS [Email1],
REVERSE(PARSENAME(REPLACE(REVERSE(Email), ';', '.'), 2)) AS [Email2],
REVERSE(PARSENAME(REPLACE(REVERSE(Email), ';', '.'), 3)) AS [Email3]
我们将不胜感激。
如果有更好的解决方案,欢迎在这里分享。
提前致谢!
【问题讨论】:
-
请提供样本数据和期望的结果。另外,是否有最大数量的电子邮件?
-
根据 SQL 的版本,有一个字符串解析函数,可以将数据解析成表格,您可以从表格结果中选择它,但正如 Linoff 所说,请提供数据和结果
-
是的,我刚刚添加了它的 SQL Sever 2016
-
@cool_taps 然后更改损坏的功能。它从一开始就坏了,所以它迟早要修复。您现在拥有的内容根本无法被查询或索引。如果您不打算查询电子邮件值,您可以在客户端拆分,并将该字段视为黑框。
标签: sql sql-server string tsql split