【问题标题】:New email address convention [duplicate]新的电子邮件地址约定 [重复]
【发布时间】:2014-02-10 03:12:08
【问题描述】:

我有一个包含电子邮件地址的数据库。

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

first_initiallast_name@mycompany.com

first_name.last_name@contoso.com

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

如何在 Oracle SQL 语句中执行此操作?

【问题讨论】:

  • 这个比较简单,你有没有尝试过?

标签: sql oracle plsql


【解决方案1】:

看来你只是想要

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

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

【讨论】:

  • 您还需要处理名字和姓氏中的空格、撇号和可能的其他字符。
  • 也处理信件的大小写。
【解决方案2】:

您只想用另外两个字段更新email 字段:

UPDATE my_table SET email= first_name || '.' || last_name || '@contoso.com'
    WHERE first_name != NULL AND last_name != NULL

请注意,如果 first_namelast_name 为空,则转换可能不正确...

编辑:实际上你想要的类似于这个问题:SQL UPDATE SET one column to be equal to a value in a related table referenced by a different column?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 2021-08-29
    • 2015-11-19
    • 2019-12-17
    • 2021-04-03
    • 2013-03-25
    • 1970-01-01
    相关资源
    最近更新 更多