热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> 数据库>>正文内容

SQL Server 中查询非中文,非英文,非数字的特殊列

发布时间:2010年01月15日点击数: 蝈蝈俊

今天在处理一个用户名数据库时,发现有些不正常的数据存在,按照逻辑,用户名只能是数字,字母,下划线和纯中文这样的字符组合存在,不应该有其他组合存在,但是发现数据库中由于各种历史原因,有些不正常的存在,如何找到这些异常数据?

以下是解决方法:

  1. if object_id('[t1]'is not null  
  2.     drop table [t1] 
  3. create table [t1]([c] nvarchar(20)) 
  4.  
  5. insert [t1] 
  6. select 'aaa' union all      -- 此数据不应该被搜索到 
  7. select 'bcds' union all     -- 此数据不应该被搜索到 
  8. select 'a1' union all       -- 此数据不应该被搜索到 
  9. select '啊' union all        -- 此数据不应该被搜索到 
  10. select '^%' union all       -- 应该搜索到 
  11. select 'ew1' union all      -- 此数据不应该被搜索到 
  12. select '344' union all      -- 此数据不应该被搜索到 
  13. select '__' union all       -- 此数据不应该被搜索到 
  14. select '213_21' union all   -- 此数据不应该被搜索到    
  15. select 'a_2' union all      -- 此数据不应该被搜索到 
  16. select 'd' union all        -- 此数据不应该被搜索到 
  17. select 'ddd' union all      -- 此数据不应该被搜索到 
  18. select '电风扇' union all  -- 此数据不应该被搜索到 
  19. select '★思寒★' union all -- 应该搜索到 
  20. select 'Ω' union all            -- 应该搜索到 
  21. select 'トントン' union all -- 应该搜索到 
  22. select '***' union all          -- 应该搜索到 
  23. select '///////' union all  -- 应该搜索到 
  24. select '@-@' union all          -- 应该搜索到 
  25. select '@小慧' union all          -- 应该搜索到 
  26. select '~*晓菊*~' union all   -- 应该搜索到 
  27. select '啊★洛' union all  -- 应该搜索到 
  28. select '不思議の夜' union all    -- 应该搜索到 
  29. select '(嘉宾)胡飞' union all   -- 应该搜索到 
  30. select '--------------'     -- 应该搜索到 
  31.  
  32.  
  33.  
  34. select * from [t1] WHERE PATINDEX('%[0-9a-z_]%',c)=0  
  35. and PATINDEX('%[^吖-座]%',c) <> 0 

本站热点业务

更多模板/案例展示

关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作