可能要寫函數(shù),把字段2的字符串傳進(jìn)去,然后從第一位開始循環(huán)一直到最后一位,利用ascii值來判斷。如果屬于a-z或者A-Z之間范圍,就保留,不在這個(gè)范圍,就去掉。
站在用戶的角度思考問題,與客戶深入溝通,找到烏海海南網(wǎng)站設(shè)計(jì)與烏海海南網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋烏海海南地區(qū)。
查找一下ascii表能看到這兩個(gè)范圍的對應(yīng)值。
這是SQLSERVER中的函數(shù):
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.(')
得到的結(jié)果是dsaasZZ...
如果確定單引號是在第一個(gè)字符的話,可以用三種方法實(shí)現(xiàn):
1、right截取字符串函數(shù)配合len函數(shù):
1
2
update 表 set 登記薄編號=right(登記薄編號,len(登記薄編號)-1) where left(登記薄編號,1)=''''
update 表 set 身份證號=right(身份證號,len(身份證號)-1) where left(身份證號,1)=''''
2、substring截取字符串函數(shù):
1
2
update 表 set 登記薄編號=substring(登記薄編號,2,100) where left(登記薄編號,1)=''''
update 表 set 身份證號=right(身份證號,2,100) where left(身份證號,1)=''''
3、replace替換字符子串函數(shù):
1
2
update 表 set 登記薄編號=replace(登記薄編號,'''','')
update 表 set 身份證號=replace(身份證號,'''','')
如果你要截取的字符只在最前方出現(xiàn),還比較簡單
給你做個(gè)試驗(yàn)
創(chuàng)建測試表
create?table?test
(content?varchar(100))
insert?into?test?values?('IPHONE?5S?lia??herf=''/a/li')
insert?into?test?values?('htclia??herf=''/a/li')--我在你基礎(chǔ)上又加了條數(shù)據(jù)
執(zhí)行
select?SUBSTRING(content,1,CHARINDEX('li',content)-1)?from?test
結(jié)果