Вы можете идентифицировать строки, которые являются кандидатами на сжатие без курсора (я думаю), группируя по подстроке цифры (длина -1) HAVING count = 10. Это идентифицирует цифры с 10 дочерними строками. Вы можете использовать этот список для вставки в новую таблицу, а затем использовать его снова для удаления из исходной таблицы. Остались бы строки, в которых не было бы всех 10, которые вы также хотели бы вставить в новую таблицу (или скопировать новые данные обратно в оригинал).
Имеет ли это смысл? Я могу написать это немного лучше, если это не так.
Возможное решение SQL:
SELECT
SUBSTRING(t.Digit,0,len(t.Digit)-1)
(SELECT TOP 1 Source
FROM innerTable i
WHERE SUBSTRING(i.Digit,0,len(i.Digit)-1)
= SUBSTRING(t.Digit,0,len(t.Digit)-1)
GROUP BY i.Source
ORDER BY COUNT(*) DESC
)
FROM table t
GROUP BY SUBSTRING(t.Digit,0,len(t.Digit)-1)
HAVING COUNT(*) = 10