这是我的表架构
Table1
{
Column1 nVarchar(MAX),
Column2 nVarchar(MAX),
Column3 nVarchar(MAX),
Column4 nVarchar(MAX),
Column5 nVarchar(MAX),
Column6 nVarchar(MAX),
Column7 nVarchar(MAX),
Column8 nVarchar(MAX),
Column9 nVarchar(MAX),
}
我如何将Column1与Column2,Column3 ... Column9进行比较,如果Column2数据与Column1相同,则使Column2为空并对其他列执行相同的操作
答案 0 :(得分:2)
我无法打扰在IPad上输入所有9个列,但下面的内容可以满足您的需求。
您需要按照前两个模式将其他7列添加到set
,values
和pivot
。
UPDATE t1
SET Column1 = [1],
Column2 = [2]
FROM #table1 t1
CROSS APPLY
(
SELECT *
FROM
(
SELECT DENSE_Rank() OVER (ORDER BY MIN(Idx)) AS Rnk,
ColumnValue
FROM
(
VALUES(1, Column1),(2, Column2)) V(Idx, ColumnValue)
WHERE ColumnValue IS NOT NULL
GROUP BY ColumnValue
) D
PIVOT (MAX(ColumnValue) FOR Rnk IN ([1], [2])) AS P
) ca