を試してみてください。
DECLARE @Table1 TABLE (id INT, val1 VARCHAR(5), val2 VARCHAR(5), val3 VARCHAR(5), val4 VARCHAR(5))
INSERT INTO @Table1 VALUES
(1,'a', 'b','c','d'),
(2,'d', 'f','k','e'),
(4,'r', 't','y','u')
DECLARE @Table2 TABLE (id INT, val1 VARCHAR(5), val2 VARCHAR(5), val3 VARCHAR(5), val4 VARCHAR(5))
INSERT INTO @Table2 VALUES
(1, 'a','h','c','l'),
(2, 'd','f','k','e'),
(4, 'g','a','w','u')
SELECT T1.id,
(CASE WHEN T1.val1 <> T2.val1 THEN 1 ELSE 0 END)
+ (CASE WHEN T1.val2 <> T2.val2 THEN 1 ELSE 0 END)
+ (CASE WHEN T1.val3 <> T2.val3 THEN 1 ELSE 0 END)
+ (CASE WHEN T1.val4 <> T2.val4 THEN 1 ELSE 0 END) AS [count]
FROM @Table1 T1 INNER JOIN @Table2 T2
ON T1.id = T2.id
か、UNPIVOT
SELECT T1.id, SUM (CASE WHEN T1.Val = T2.Val THEN 0 ELSE 1 END) [count] FROM
(SELECT * FROM @Table1 UNPIVOT (Val FOR Col IN ([val1],[val2],[val3],[val4])) UNPVT) T1
INNER JOIN
(SELECT * FROM @Table2 UNPIVOT (Val FOR Col IN ([val1],[val2],[val3],[val4])) UNPVT) T2
ON T1.id = T2.id AND T1.Col = T2.Col
GROUP BY T1.id
結果使用することができます。
id count
1 2
2 0
4 3
を 'CTRL + K 'のtpフォーマットコード – TheGameiswar