【问题标题】:SQL Server - split a column value for multiple row by identified from a delimiter [duplicate]SQL Server - 通过从分隔符识别来拆分多行的列值[重复]
【发布时间】:2019-09-25 00:05:42
【问题描述】:

我有一个表,其中包含两列(ID、电子邮件)和如下值。

ID    |email
 1    |abc@gmail.lk;efg@gmail.lk;rrr@hotmail.com
 2    |xyz@gmail.com;eee@gmail.lk

问题是我需要使用 sql server 检索如下这些值。

ID  |email
1    abc@gmail.lk
1    efg@gmail.lk
1    rrr@hotmail.com
2    xyz@gmail.com
2    eee@gmail.lk

【问题讨论】:

  • 关于如何做到这一点的问题确实有 100 多个。如果上述重复的答案都没有帮助,我建议在网站上进行搜索,因为您会找到更多关于如何执行此操作的示例。如果您尝试但失败了,则改为发布一个新问题来显示您的尝试,引用您使用的答案,并解释为什么它们不起作用。谢谢。

标签: sql sql-server tsql


【解决方案1】:

对于 sql server 2016 或 > 2016

with cte as
(


 select 1 as id,   'abc@gmail.lk;efg@gmail.lk;rrr@hotmail.com' as email
 union all
 select 2    ,'xyz@gmail.com;eee@gmail.lk'
) select id,value from cte CROSS APPLY STRING_SPLIT(email, ';');

id  value
1   abc@gmail.lk
1   efg@gmail.lk
1   rrr@hotmail.com
2   xyz@gmail.com
2   eee@gmail.lk

【讨论】:

    猜你喜欢
    • 2021-06-14
    • 1970-01-01
    • 2017-03-21
    • 2019-05-11
    • 2018-03-17
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多