小问题,怎样查姓名列中有非汉字字符的记录

QQ454831 2005-08-08 12:10:10
姓名列中由于生成记录时检查不足现想剔除一些怪字符名字,
如包含首空格,数字,标点符号等

本以为很简单

select * from table1 where name <啊

结果根本不行
...全文
206 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangyj 2006-03-17
  • 打赏
  • 举报
回复
确实强!
rubik78 2005-08-31
  • 打赏
  • 举报
回复
还是这个快得多:

select *
from table1
where PATINDEX('%[^吖-做]%',username) > 0
rubik78 2005-08-31
  • 打赏
  • 举报
回复
between '吖' and '做'
rubik78 2005-08-31
  • 打赏
  • 举报
回复
上面的方法不能判断日文或全角标点或繁体汉字,下面这个可以

between '阿' and '座'
tangqijun199 2005-08-10
  • 打赏
  • 举报
回复
那确实.
试试不就知道了
prcgolf 2005-08-10
  • 打赏
  • 举报
回复
up
QQ454831 2005-08-09
  • 打赏
  • 举报
回复
日文假名和汉字一样吧,也是len为一,datalength为二
tangqijun199 2005-08-08
  • 打赏
  • 举报
回复
有非汉字的字符的
select * from table1
where datalength(username)%(2*len(username))<>0
要是有汉字字符的还是没有办法。

tangqijun199 2005-08-08
  • 打赏
  • 举报
回复

select * from table1
where datalength(username)%len(username)<>0
QQ454831 2005-08-08
  • 打赏
  • 举报
回复
有何好方法
QQ454831 2005-08-08
  • 打赏
  • 举报
回复
想了一下,其实可以这样问,怎样查询姓名列全为汉字的记录?


select * from table1
where datalength(username)<>len(username)*2

好像可以实现,待大家
tangqijun199 2005-08-08
  • 打赏
  • 举报
回复
去空格可以用LTRIM()和RTRIM()
判断是否有特殊字符可以用charindex()
入charindex('a','bcd')如果第一个参数在第2个里面返回值就大于0。
QQ454831 2005-08-08
  • 打赏
  • 举报
回复
错了一个字
select * from table1 where name < '阿'
可以得到不少记录,不过仅限首字符
summerICEREDTEA 2005-08-08
  • 打赏
  • 举报
回复
学习 :)
tangqijun199 2005-08-08
  • 打赏
  • 举报
回复
の也是1位用我上面的办法应该可以啊。
QQ454831 2005-08-08
  • 打赏
  • 举报
回复
发现日文假名 の,确实不行啊

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧