SQL Server 2008, я унаследовал таблицу, как это (74k строк):SQL удаления дубликатов сервера с твист
create table #mess (keycol char(36) , name1 varchar(254) , name2 varchar(254), valuex varchar(254))
insert into #mess values ('971EC307-8514-450D-AE3A-4E25EA3F3A10' , 'a' , '' , '')
insert into #mess values ('971EC307-8514-450D-AE3A-4E25EA3F3A10' , '' , 'a' , 'value-a')
insert into #mess values ('04FD0C0B-FC90-405A-BFD6-C3AF2516E51F' , 'b' , '' , 'value-b')
insert into #mess values ('578F2893-15E6-4877-9FE6-AC2F4F351143' , 'c' , '' , 'value-c')
insert into #mess values ('04FD0C0B-FC90-405A-BFD6-C3AF2516E51F' , '' , 'b' , '')
insert into #mess values ('FAFCBDFE-D49E-4566-882D-0B6628DA59CC' , '' , 'd' , 'value-d')
Что делает этот результирующий набор:
keycol name1 name2 valuex
------------------------------------ ------- -------- ------------
971EC307-8514-450D-AE3A-4E25EA3F3A10 a
971EC307-8514-450D-AE3A-4E25EA3F3A10 a value-a
04FD0C0B-FC90-405A-BFD6-C3AF2516E51F b value-b
578F2893-15E6-4877-9FE6-AC2F4F351143 c value-c
04FD0C0B-FC90-405A-BFD6-C3AF2516E51F b
FAFCBDFE-D49E-4566-882D-0B6628DA59CC d value-d
Мне нужно сделать он вроде этого (дедуплицирование и сворачивание данных на основе того, когда keycol
соответствует между двумя строками, и используя name1
, если name2
пуст и наоборот, но всегда использует name1
и всегда использует непустые valuex
). Все идеи были оценены.
Спасибо.
keycol name1 valuex
------------------------------------ ------- ------------
971EC307-8514-450D-AE3A-4E25EA3F3A10 a value-a
04FD0C0B-FC90-405A-BFD6-C3AF2516E51F b value-b
578F2893-15E6-4877-9FE6-AC2F4F351143 c value-c
FAFCBDFE-D49E-4566-882D-0B6628DA59CC d value-d
- это пробелы пустой или пустой строки? – SQLMason
Это пустые строки. Благодарю. – Snowy