【问题标题】:UPDATE a column with a subquery使用子查询更新列
【发布时间】:2014-12-20 22:20:54
【问题描述】:

我有一个包含电子邮件地址和用户名列的用户表 (tbUser),我正在尝试删除用户名列中的任何电子邮件地址。下面的查询查找该人在其用户名中使用“@”的所有记录,我只想将所有内容都放在“@”的左侧——这足以让我确定它是否是电子邮件地址。不管它是否真的是一个电子邮件地址,都不需要太严格。

SELECT LEFT(username, CHARINDEX('@', username) - 1) AS Expr1
FROM     tbUser
WHERE  (username LIKE '%@%')

现在我想更新所有用户名,以便它只是“@”左侧的文本,但不知道该怎么做。类似于下面的查询,但不太正确。

UPDATE tbUser
SET username = (SELECT LEFT(username, CHARINDEX('@', username) - 1) AS Expr1
                FROM tbUser AS tbUser_1)
WHERE  (username LIKE '%@%')

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    如果 SELECT 准确返回您想要的内容,您应该能够像这样更新表格:

    UPDATE tbUser
    SET username = LEFT(username, CHARINDEX('@', username) - 1)
    WHERE username LIKE '%@%'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-19
      • 2021-10-25
      • 1970-01-01
      • 2022-11-30
      • 2016-10-13
      相关资源
      最近更新 更多