这是我的表架构
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 为空并对其他列执行相同操作
最佳答案
我懒得在 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
关于sql - 如何使用 SQL 查询比较列数据并替换文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36748797/