【问题标题】:Updating a column from a SELECT statement从 SELECT 语句更新列
【发布时间】:2017-01-15 19:47:30
【问题描述】:

我正在尝试在我的 Family 表中添加一个名为 Full Address 的新列。它基本上是结合其他列的值并生成Full Address

我编写了以下查询,但它似乎不起作用。另外,如果有更好的方法来生成我想要的值,我将不胜感激 - Full Address

UPDATE Family SET FullAddress = (SELECT StreetAddress+', '+City+', '+State+', '+ZipCode AS Address FROM Family)

谢谢!

【问题讨论】:

    标签: sql database sql-server-2008 stored-procedures sql-update


    【解决方案1】:

    如果您需要更多空间,请在引号之间保持间距:

    UPDATE Family SET 
    FullAddress = CONCAT(StreetAddress, ', ', City, ', ', STATE, ', ', ZipCode)
    

    【讨论】:

    • 这里使用 CONCAT 的好处是它可以处理多个列之一为空的情况,而 cmnardi 和 gordonlinoff 提出的技术却没有。它处理 null 的方式的唯一问题是你会得到 , ,这可能并不理想。
    【解决方案2】:

    大概,你只是想要这个:

    UPDATE Family
        SET FullAddress = StreetAddress + ', ' + City + ', ' + State + ', ' + ZipCode;
    

    【讨论】:

      【解决方案3】:

      您可以尝试在查询中使用CONCAT,而不是使用 SELECT:

      UPDATE Family SET 
      FullAddress = CONCAT(StreetAddress ,', ' City ,', ' STATE ,', ' ZipCode ) AS Address
      

      【讨论】:

        【解决方案4】:

        试试

        UPDATE Family SET FullAddress = StreetAddress+', '+City+', '+State+', '+ZipCode

        【讨论】:

          猜你喜欢
          • 2010-11-06
          • 1970-01-01
          • 1970-01-01
          • 2018-07-29
          • 2022-01-23
          • 1970-01-01
          • 1970-01-01
          • 2017-02-22
          • 2014-05-15
          相关资源
          最近更新 更多