可能要写函数,把字段2的字符串传进去,然后从第一位开始循环一直到最后一位,利用ascii值来判断。如果属于a-z或者A-Z之间范围,就保留,不在这个范围,就去掉。
站在用户的角度思考问题,与客户深入沟通,找到乌海海南网站设计与乌海海南网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、网站制作、成都外贸网站建设、企业官网、英文网站、手机端网站、网站推广、国际域名空间、雅安服务器托管、企业邮箱。业务覆盖乌海海南地区。
查找一下ascii表能看到这两个范围的对应值。
这是SQLSERVER中的函数:
CREATE function FGET_NEWSTR(@str varchar(50))
returns varchar(50)
as
begin
declare @newstr varchar(50)
declare @oldstr varchar(50)
declare @mystr varchar(50)
set @oldstr = @str
set @newstr = ''
while (len(@oldstr) 0)
begin
set @mystr = substring(@oldstr,1,1)
if (ascii(@mystr) = 97 and ascii(@mystr) = 122) or (ascii(@mystr) = 65 and ascii(@mystr) = 90)
begin
set @newstr = @newstr + @mystr
end
set @oldstr = substring(@oldstr,2,len(@oldstr) - 1)
end
return @newstr
end
select dbo.FGET_NEWSTR('125dsaas2ZZFDAFE2/SD''SS3C.(')
得到的结果是dsaasZZ...
如果确定单引号是在第一个字符的话,可以用三种方法实现:
1、right截取字符串函数配合len函数:
1
2
update 表 set 登记薄编号=right(登记薄编号,len(登记薄编号)-1) where left(登记薄编号,1)=''''
update 表 set 身份证号=right(身份证号,len(身份证号)-1) where left(身份证号,1)=''''
2、substring截取字符串函数:
1
2
update 表 set 登记薄编号=substring(登记薄编号,2,100) where left(登记薄编号,1)=''''
update 表 set 身份证号=right(身份证号,2,100) where left(身份证号,1)=''''
3、replace替换字符子串函数:
1
2
update 表 set 登记薄编号=replace(登记薄编号,'''','')
update 表 set 身份证号=replace(身份证号,'''','')
如果你要截取的字符只在最前方出现,还比较简单
给你做个试验
创建测试表
create table test
(content varchar(100))
insert into test values ('IPHONE 5S lia herf=''/a/li')
insert into test values ('htclia herf=''/a/li')--我在你基础上又加了条数据
执行
select SUBSTRING(content,1,CHARINDEX('li',content)-1) from test
结果