我用名字,姓氏和邮件提供者制作了一张桌子。现在我想从中创建一个邮件地址。我怎样才能做到这一点?
这是当前表格的外观:
+----------+-------------+---------------+
| Name | Familiyname | provider |
+----------+-------------+---------------+
| Karl | Dope | gmail.com |
| Jonathan | Dorianius | hotmail.com |
| Mary | Jane | spiderman.com |
+----------+-------------+---------------+
现在我想生成第四列,该列生成一个组合。在Google上查找时,我只发现了concat,因为我使用的是sql server 2008,所以我无法使用它。
最后应该看起来像这样:
+----------+-------------+---------------+-------------------------------+
| Name | Familiyname | provider | mail |
+----------+-------------+---------------+-------------------------------+
| Karl | Dope | gmail.com | Karl.Dope@gmail.com |
| Jonathan | Dorianius | hotmail.com | Jonathan.Doranius@hotmail.com |
| Mary | Jane | spiderman.com | Mary.Jane@spiderman.com |
+----------+-------------+---------------+-------------------------------+
有什么想法或提示吗?
答案 0 :(得分:0)
第一种方式
Select Name + Familiyname +'@' + provider As EmailAddress from @tblName
第二道
Select Name +'@' + provider As EmailAddress from @tblName
第三种方式
Select Name +'_' + Familiyname +'@' + provider As EmailAddress from @tblName
答案 1 :(得分:0)
使用COALESCE()
创建一个空的安全电子邮件地址。
(如果name和Familiyname都不为空,则返回name.Familiyname@provider
。如果只有name为非null,则返回name@provider
,或者,如果只有Familiyname不为null,则返回Familiyname@provider
。)
select coalesce(name + '.' + Familiyname, name, Familiyname) + '@' + provider As EmailAddress
from tablename
答案 2 :(得分:0)
要获得输出中的确切值,并假设电子邮件始终为name.familiyname@provider,则:
select a.* from tableA a
left join tbaleB b
on a.A1=b.B1 and a.A2=b.B2 and a.A3=b.B3 and a.A4=b.B4
where b.B1 is null
对于您期望的输出,这应该可以解决问题
答案 3 :(得分:-1)
您可以使用mysql CONCAT()函数:
select *, CONCAT(name,'.',Familiyname,"@",provider) as mailAddress from tab;