SQL: правильно идентифицировать и исправить (если возможно) имена в базе данных - PullRequest
0 голосов
/ 11 октября 2011

У меня большая база данных имен, и я надеюсь определить неверную заглавную букву.Прямо сейчас я использую следующее ...

SELECT *
  FROM myTable
 WHERE LastName LIKE '%Mcd%'  COLLATE SQL_Latin1_General_Cp1_CS_AS

Теперь, конечно, это неэффективно, потому что мне приходится запускать / редактировать это снова и снова для разных случаев.Я думаю, найти список именных случаев, которые могут привести к возможным проблемам, и выполнить LIKE IN ('case1', 'case2', 'case3', 'case4', ...)

, если это возможно.Есть ли другой способ, о котором я не думаю?

Другие случаи, которые я думаю, мне придется проверить, это сокращения (%.%), Гипс (% -%) и апострофы (% ').%).

1 Ответ

1 голос
/ 11 октября 2011

Вы можете использовать

SELECT *
  FROM myTable
 WHERE LastName LIKE '%Mcd%' or LastName LIKE '%Foo%' 

Или

WITH T(Word) AS
(
SELECT 'Mcd' UNION ALL
SELECT 'Foo'
)

SELECT *
FROM myTable
JOIN T ON LastName LIKE '%' + Word + '%' 

Чтобы избежать необходимости сканировать myTable несколько раз.

Чтобы избежать обработки строки несколько раз вы могли использовать CLR и регулярные выражения.

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