【发布时间】:2012-10-25 17:06:03
【问题描述】:
我正在尝试提取包含以下特殊字符的记录:
*, +, -, . (dot), ', , /, 0-9
但到目前为止没有太大的成功。
该列名为 People_Name,名称应采用以下格式:姓氏、名字。例如,史密斯、约翰逊。但由于数据输入错误, 一些名称显示为:
681, Smith, *S-Sean, Tom, +, John, -, Tim, ., ., /, Celo, 0-9999,
Maria, ', Irving, and sometime as 'Unknown, Alexis.
我当前的查询(SQL Server 2005)是
Select People_name
from mytable
where (People_name LIKE '%*%'
OR People_name LIKE '%-,%'
OR People_name LIKE '%+%'
OR People_name LIKE '%/%'
OR People_name LIKE '%unknown%')
我可以继续添加 LIKE 列表,但我确信 SQL 服务器中有一种方法可以提取带有这些特殊字符的记录。表中有超过1000万条记录, 重复排序和查找那些特殊字符,然后使用上面的 LIKE 运算符。
有人可以调查一下吗?
【问题讨论】:
-
我知道这不是您想要的答案,但这确实应该在前端处理。允许数据输入错误的程序有问题,而不是 DB 或 DBA。
-
@Michael,在发布此问题之前,我进行了快速搜索并看到了该帖子。我也试过了,但没用。
-
副本显示了如何执行此操作,但在您的情况下,您可能应该使用类似
where People_Name like '%[^a-zA-Z ,]%' collate Latin1_General_BIN的内容来包含空格和逗号作为可接受的字符。
标签: sql sql-server-2005