我的表格中有一个名为command
的列,其中存储了有关应由系统发送的电子邮件的信息。
数据如下所示:
<_email><property name="To">test@test.se;test@tester.se;test@test.com</property><property name="From">sender@sender.se</property>
<_email><property name="To">test@test.se</property><property name="From">sender@sender.com</property>
我想使用select语句只显示将收到电子邮件的人的电子邮件地址。通过这样做,输出应如下所示:
第1行示例:
test@test.se;test@tester.se;test@test.com
第2行示例:
test@test.se
由于电子邮件地址的长度不同,我无法使用substring
。我假设可以通过使用正则表达式以某种方式实现这一点,但我无法解决它。
你能帮帮我吗?
谢谢!
/ Krustofski
答案 0 :(得分:1)
您可以使用CharIndex函数来检索字符串的开头和结尾,并使用一点数学来执行子字符串:
Select Substring(MyColumn,
CharIndex('<property name="To">', MyColumn) + 20,
CharIndex('</property>', MyColumn) -
CharIndex('<property name="To">', MyColumn) - 20
)
From MyTable
我使用您的表格值进行了测试,但它确实有效。