SQL:在数据库中正确识别并更正(如果可能)名称

时间:2011-10-11 15:52:36

标签: sql sql-server sql-server-2008 sql-like identify

我有一个庞大的名字数据库,我希望找出不正确的大小写。 现在我正在使用以下内容......

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

现在当然这是无效的,因为我必须为不同的情况一遍又一遍地运行/编辑。我的想法是找到一个可能会出现问题的名称案例列表     喜欢('case1','case2','case3','case4',...)

如果可能的话。还有另一种我没想到的方式吗?

我认为我必须检查的其他情况是缩写(%。%),超量(% - %)和撇号(%'%)。

1 个答案:

答案 0 :(得分:1)

您可以使用

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和正则表达式。