Sql 新的电子邮件地址约定

Sql 新的电子邮件地址约定,sql,oracle,plsql,Sql,Oracle,Plsql,我有一个数据库,里面有电子邮件地址 我的公司正在更改我们的电子邮件地址约定,从: 首字母_name@mycompany.com 到 姓_name@contoso.com 我想写一个SQL语句来一次性更新数据库中的所有电子邮件地址。名字和姓氏是同一个表中的列(为了简单起见,我们将其称为MY_表) 如何在Oracle SQL语句中实现这一点?看起来您只需要 UPDATE my_table SET email_address = first_name || '.' || last_name ||

我有一个数据库,里面有电子邮件地址

我的公司正在更改我们的电子邮件地址约定,从:

首字母_name@mycompany.com

姓_name@contoso.com

我想写一个SQL语句来一次性更新数据库中的所有电子邮件地址。名字和姓氏是同一个表中的列(为了简单起见,我们将其称为MY_表)


如何在Oracle SQL语句中实现这一点?

看起来您只需要

UPDATE my_table
   SET email_address = first_name || '.' || last_name || '@contoso.com'

这将更新表中的每一行,并假设您没有
NULL
名字或姓氏值。

您只需要使用其他两个字段更新
电子邮件
字段:

UPDATE my_table SET email= first_name || '.' || last_name || '@contoso.com'
    WHERE first_name != NULL AND last_name != NULL
请注意,如果
first\u name
last\u name
为空,则转换可能不正确


编辑:实际上,你想要的与这个问题类似:

这是一个相对简单的问题,你尝试过什么吗?你还需要处理空格、撇号以及名字和姓氏中可能包含的其他字符。还要处理字母的大小写。