У меня есть таблица в SQL Server 2000 с данными, похожими на следующие:
ReferenceNumber ReferenceValue
00001 Not assigned
00002 Not assigned
00002 ABCDE
, в котором каждый ReferenceNumber может появляться в таблице несколько раз, либо со значением ReferenceValue «Не назначено», либо с истинным значением ReferenceValue.
Я хочу вывести данные в очищенную таблицу, содержащую только одну строку для каждого ReferenceNumber и истинное ReferenceValue, если оно существует, или «Не назначено», если истинных ReferenceValues нет.
Я вижу, как это сделать с двумя запросами:
SELECT TOP 1 ReferenceNumber, ReferenceValue
INTO clean
FROM duplicates
WHERE ReferenceValue <> 'Not assigned'
INSERT INTO clean(ReferenceNumber, ReferenceValue)
SELECT TOP 1 ReferenceNumber, ReferenceValue
WHERE ReferenceValue = 'Not assigned'
AND ReferenceNumber NOT IN (SELECT ReferenceNumber FROM clean)
но я думаю, что должен быть лучший способ. Есть идеи?