сравнение двух строковых массивов или списков - PullRequest
0 голосов
/ 28 августа 2010

У меня есть две таблицы SQL с данными, которые я хотел бы сравнить. Таблицы имеют следующую структуру:

id, title,url

Я хочу сравнить таблицы по названию, где, если строки похожи или равны, это было бы отмечено записью записей в файл. Кто-то предложил не делать это в SQL, копировать данные и использовать их в .net в качестве списков для сравнения.

Любые предложения о том, как это сделать?

типичный пример для заголовка:

Таблица 1 - KPTH Fox 44 через

Таблица 2 - KPTH Fox44

Я пытался использовать LIKE в sql с подстановочным знаком "%", но он работает только для примеров такого типа и не работает на

ABC

MSabC

1 Ответ

2 голосов
/ 28 августа 2010

Это было бы намного проще сделать в БД, а затем вернуть набор данных соответствующих элементов.Предполагая, что две таблицы идентичны, и вы сопоставляете только заголовок, ваш SQL будет выглядеть так:

SELECT [id], [title], [url]
FROM [Table1] t1
JOIN [Table2] t2 ON t1.[title] = t2.[title]

Затем выполните итерацию по каждой записи в наборе результатов и запишите все поля, которые вы хотите в файл.

Если вы хотите просто придерживаться SQL, вы можете запустить запрос, а затем просто сохранить исходящий файл в файл, используя инструмент запроса для вашей БД, например Management Studio или что-то в этом роде.

РЕДАКТИРОВАТЬ: Исходя из «схожего» требования, вы можете использовать команду SOUNDEX в SQL для сравнения, если они звучат одинаково. См. MSDN для получения дополнительной информации о команде SOUNDEX.

РЕДАКТИРОВАТЬ 2: Чтобы добавить дополнительную информацию относительно добавленных вами требований: В SQL это аналогичное требование можетбыть труднымВы можете разбить заголовок на слова, а затем сохранить их во временную таблицу и посмотреть, сколько совпадений, а затем на основе порога для назначения условия совпадения.Похоже, что ваши данные также хранят URL, так что вы можете также использовать его и проверить базовый URL, чтобы увидеть, совпадают ли они в первую очередь, прежде чем выполнять взвешенную проверку заголовка.Мне не совсем ясно, какой результат вы ищете, кроме названия.

Это действительно не очень простая задача, и я думаю, что кто-то сможет просто дать вам ответ.Я уверен, что профессор в университете работает над этой проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...