Update row base on distinct, stuff, path query

巧了我就是萌 提交于 2019-12-25 06:47:16

问题


Continue from Combine multiple rows into one "memo" nvarchar(max)

SELECT
    DISTINCT fileref, stuff(
        (
        Select char(13)+char(10) + IsNull( D2.viaccno, '' )
        From vi_accno As D2
        Where D2.vifileref = A.FileRef
        For Xml Path(''), type
        ).value('.', 'nvarchar(max)')
        , 1, 2, '') As accno
FROM
   vtindex a

How do i use the above query to update each accno row on table 1 matching fileref = fileref

table 1: id, fileref, client, addr, accno


回答1:


Based on given data, I can offer you this:

UPDATE t
SET accno = p.accno 
FROM [table 1] t
INNER JOIN (
SELECT
    DISTINCT fileref, stuff(
        (
        Select char(13)+char(10) + IsNull( D2.viaccno, '' )
        From vi_accno As D2
        Where D2.vifileref = A.FileRef
        For Xml Path(''), type
        ).value('.', 'nvarchar(max)')
        , 1, 2, '') As accno
FROM
   vtindex a
) as p
ON p.fileref= t.fileref


来源:https://stackoverflow.com/questions/38093988/update-row-base-on-distinct-stuff-path-query

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!