只查中文数据,不要数字

sbxlj 2005-08-22 11:48:33
我这有个字段 是string类型的,里面有中文也有数字,
我想只显示出所有的中文数据,请问怎么写?
please help ... 谢谢
...全文
146 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyb0026 2005-08-22
  • 打赏
  • 举报
回复
drop table tab
create table tab (id varchar(100))
insert into tab select '好好学习'
insert into tab select '123'

select * from tab where ISNUMERIC(id)=0

sbxlj 2005-08-22
  • 打赏
  • 举报
回复
谢谢各位.
rivery 2005-08-22
  • 打赏
  • 举报
回复
加条件:把需要去除的asc码得出,在函数中修改条件。
samfeng_2003 2005-08-22
  • 打赏
  • 举报
回复
就是请教一下,就是上面的函数中不能识别“—%(”这些符号得嘛!有什么办法来清除呢?
rivery 2005-08-22
  • 打赏
  • 举报
回复
楼上的方法可以满足行值是单一的中文或数字,如果是两者混合的如:“我的111”,要筛选,可以采用下面的函数:
create function getNOnumeric(@a varchar(50))
returns varchar(50)
as
/*
函数功能去掉数字和空格
可扩展为:去掉中文,英文等。
*/
begin
declare @int int,@newstr varchar(50)
select @a=reverse(@a)
select @newstr=''
select @int=len(@a)
while @int>0
begin
if ((ascii(@a)<48 or ascii(@a)>57) and ascii(@a)<>32)
select @newstr=@newstr+left(@a,1)

select @a=stuff(@a,1,1,'')
select @int=@int-1
end
select @newstr=reverse(@newstr)
return @newstr
end

declare @a varchar(20)
select @a='大1 的 111'
select dbo.getNonumeric(@a)
/*
结果
--------
大的

*/
如果需要可以和上面的方法结合使用。

27,579

社区成员

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

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