【问题标题】:SQL Update statement using multiple values使用多个值的 SQL 更新语句
【发布时间】:2013-08-14 15:24:49
【问题描述】:

我要更新一个名为Dash 的表,我要更新的列名为Analysts。从下面的代码中,我得到一个人的NameLast,他们的RoleId 是3 或4。此代码将获得该人的第一次出现并将他们的姓氏插入Analysts,但我想要的是逗号分隔的所有 PersonRoleId 3 或 4 的姓氏列表。

    UPDATE Dash
    SET Dash.Analysts = Person.NameLast
    FROM dbo.Dash
    INNER JOIN dbo.Item 
    ON Dash.DPItem = Item.ItemId        
    INNER JOIN dbo.Assignment 
    ON Item.ItemId = Assignment.ItemId
    INNER JOIN dbo.Person
    ON Assignment.PersonId = Person.PersonId
    WHERE (Person.RoleId = 3 or Person.RoleId = 4)

【问题讨论】:

    标签: sql sql-server-2008 tsql sql-update


    【解决方案1】:
    update Dash set
        Analysts = 
        stuff(
             (
                 select ', ' + P.NameLast
                 from dbo.Item as I
                     inner join dbo.Assignment as A on A.ItemId = I.ItemId
                     inner join dbo.Person as P on P.PersonId = A.PersonId
                 where I.ItemId = D.DPItem and P.RoleId in (3, 4)
                 for xml path(''), type
             ).value('.', 'nvarchar(max)')
        , 1, 2, '')
    from dbo.Dash as D
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 2017-12-02
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多