所以,每个项目都有一个id,一个setId和一个名字。
当前数据可能只在整个集合中填写一个NAME字段。
EX>
>ID = 1 >NAME = 'Bob' >SETID = 5
>ID = 2 >NAME = NULL >SETID = 5
>ID = 3 >NAME = NULL >SETID = 5
>ID = 4 >NAME = NULL >SETID = 5
我正在寻找一个SQL脚本来获取“SET”中非空的一条记录 为“NAME”记录设置“SET”中的剩余项目。
我的目标最终结果如下:
>ID = 1 >NAME = 'Bob' >SETID = 5
>ID = 2 >NAME = 'Bob' >SETID = 5
>ID = 3 >NAME = 'Bob' >SETID = 5
>ID = 4 >NAME = 'Bob' >SETID = 5
答案 0 :(得分:1)
假设集合中只有一个Name
非空,您可以使用CTE
并执行以下操作:
;WITH NameHelper AS
(
SELECT
Name,
SetID
FROM MyTable
WHERE Name IS NOT NULL
GROUP BY Name, SetID
)
UPDATE MyTable SET Name = NameHelper.Name
FROM MyTable
INNER JOIN NameHelper ON MyTable.SetID = NameHelper.SetID