我有一个庞大的名字数据库,我希望找出不正确的大小写。 现在我正在使用以下内容......
SELECT *
FROM myTable
WHERE LastName LIKE '%Mcd%' COLLATE SQL_Latin1_General_Cp1_CS_AS
现在当然这是无效的,因为我必须为不同的情况一遍又一遍地运行/编辑。我的想法是找到一个可能会出现问题的名称案例列表 喜欢('case1','case2','case3','case4',...)
如果可能的话。还有另一种我没想到的方式吗?
我认为我必须检查的其他情况是缩写(%。%),超量(% - %)和撇号(%'%)。
答案 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和正则表达式。