Попробуйте следующее:
CREATE TABLE TableA (id int, match char(15), mode char(10),match2 char(15), status char(15))
INSERT INTO TableA (ID, Match, MODE, match2)
SELECT 1, 'ABC12', 'A', 123 UNION
SELECT 2, 'ABC12', 'A', 123 UNION
SELECT 3, 'ABC12', 'A', 123 UNION
SELECT 4, 'ABC12', 'B', 234 UNION
SELECT 5, 'ABC12', 'B', 234 UNION
SELECT 6, 'BCD32', 'A', 456 UNION
SELECT 7, 'BCD32', 'B', 456 UNION
SELECT 8, 'ABC23', 'A', NULL UNION
SELECT 9, 'ABC23', 'B', 789
UPDATE
t1
SET
status = 'PASS'
FROM
TableA AS t1
JOIN
TableA AS t2
ON
t1.id != t2.id
AND t1.match = t2.match
AND (t1.match2 != t2.match2 OR t2.match2 IS NULL)
AND t2.mode = 'A'
WHERE
t1.mode = 'B'
SELECT * FROM TableA