У меня есть две таблицы, у которых нет ключа, и мне нужно конкатенировать весь столбец, чем нужно проверить три условия, потому что столбец отсутствует в столбце.разница в двух таблицах без ключевого столбца
- Если запись в одном из присутствующих в других без каких-либо изменений, то в пользовательской колонке «No Change»
- Если запись присутствует в таблице «старая», но нет в таблице новой, то в пользовательской колонке «Запись удалена»
- Если запись присутствует в таблице «новый», но нет в таблице старый, то в пользовательской колонке «новая запись»
Declare @old table
(
BaseVehicle VARCHAR (50),
BaseVehicleID VARCHAR (50),
Years VARCHAR (50),
Make VARCHAR (50),
MakeID VARCHAR (50)
)
INSERT @old
SELECT '2002 Freightliner FL60', '127640', '2002', 'Freightliner', '497' UNION ALL
SELECT '2002 Freightliner FL70', '127641', '2002', 'Freightliner', '497' UNION ALL
SELECT '2014 Check', '127979', '2014', 'BMW', '31' UNION ALL-- Record Deleted
SELECT '2003 Freightliner FL50', '127655', '2003', 'Freightliner', '497' UNION ALL
SELECT '2003 check', 'test', '2003', 'Freightliner', '497' UNION ALL-- Record Deleted
SELECT '2003 Freightliner FL70', '127657', '2003', 'Freightliner', '497'
Declare @new table
(
BaseVehicle VARCHAR (50),
BaseVehicleID VARCHAR (50),
Years VARCHAR (50),
Make VARCHAR (50),
MakeID VARCHAR (50)
)
INSERT @new
SELECT '2014 Jeep Cherokee', '127768', '2014', 'Jeep', '42' UNION ALL-- New Records
SELECT '2011 Ford E-250' , '96774', '2011', 'Ford', '54' UNION ALL-- New Records
SELECT '2014 BMW Alpina B7L', '127979', '2014', 'BMW', '31' UNION ALL-- New Records
SELECT '2002 Freightliner FL60', '127640', '2002', 'Freightliner', '497' UNION ALL -- No Changes
SELECT '2002 Freightliner FL70', '127641', '2002', 'Freightliner', '497' UNION ALL-- No Changes
SELECT '2003 Freightliner FL50', '127655', '2003', 'Freightliner', '497' UNION ALL-- No Changes
SELECT '2003 Freightliner FL70', '127657', '2003', 'Freightliner', '497' -- No Changes
и выход должен выглядеть
BaseVehicle, BaseVehicleID, Years, Make, MakeID ,Message
2014 Check, 127979, 2014, BMW, 31, Deleted Row
2003 check, test, 2003, Freightliner, 497, Deleted Row
'2014 Jeep Cherokee', '127768','2014','Jeep', '42' , New Records
'2011 Ford E-250' , '96774','2011','Ford', '54' , New Records
'2014 BMW Alpina B7L', '127979', '2014','BMW', '31', New Records
'2002 Freightliner FL60', '127640','2002','Freightliner', '497' , No Changes
'2002 Freightliner FL70', '127641','2002','Freightliner', '497', No Changes
'2003 Freightliner FL50', '127655','2003','Freightliner', '497' , No Changes
'2003 Freightliner FL70', '127657','2003','Freightliner', '497' , No Changes
Я использую SQL-Server-2008 – Shan
Вместо того, concat use SET операции .. intersect, минус и т. д. –