【问题标题】:how to pull records with special characters in SQL (2005) Server?如何在 SQL (2005) Server 中提取带有特殊字符的记录?
【发布时间】: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


【解决方案1】:

你可以试试

select People_name
from mytable
where People_name like '%[^a-zA-Z ,]%'

SQL FIDDLE Example

【讨论】:

    猜你喜欢
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2013-08-09
    • 2016-07-24
    • 2011-05-16
    • 1970-01-01
    相关资源
    最近更新 更多