вы должны быть в состоянии для обработки этого использования CROSS APPLY с несколькими конструкторами значений таблиц и их объединения с использованием INNER JOIN
при использовании Cross Наносить (VALUES (FIELD1), (Field2)) он действует аналогично UNPIVOT в том, что вы получите строку для каждого поля вы перечислить в вашем ТВЦ
SELECT ca.Field, ca.New, lj.Old
FROM ParentsUpdationDetails new
CROSS APPLY (
VALUES ('ParentID', CAST(ParentID AS VARCHAR)), -- All datatypes must match
('FatherFirstName', FatherFirstName),
('FatherLastName', FatherLastName)
) ca(Field, New)
INNER JOIN (
SELECT ParentID, Field, Old
FROM Parents old
CROSS APPLY (
VALUES ('ParentID', CAST(ParentID AS VARCHAR)), -- All datatypes must match
('FatherFirstName', FatherFirstName),
('FatherLastName', FatherLastName)
) ca(Field, Old)
) lj ON new.ParentID = lj.ParentID AND ca.Field = lj.Field
WHERE new.ParentID = 15999
быть в курсе, что вы будет конвертировать не varchar datatypes в varchars, чтобы это работало.
Вы будете хранить числа и строки в том же столбце. Это не похоже на хорошую идею. –
есть ли способ конвертировать все в varchar тип данных –