--针对商品货号-商品为字母数字和下划线组成--
--95 _
--65-90 A-Z
--97-122 a-z
--48-57 0-9
create table #tab_item_no(t_id decimal(18,0) identity(1,1),item_no varchar(40))
create table #tab_item_no_rtn(t_id decimal(18,0) identity(1,1),item_no varchar(40))
declare @ll_count decimal(18,0),@ll_len int,@ll_ascii int,@ls_item_no varchar(40)
insert into #tab_item_no
select item_no from t_bd_item_info with(nolock)
set @ll_count = 0
select @ll_count = count(*) from #tab_item_no
while @ll_count > 0
begin
set @ls_item_no = ''
select @ls_item_no = item_no from #tab_item_no where t_id = @ll_count
set @ll_len = 0
set @ll_len = LEN(@ls_item_no)
while @ll_len > 1
begin
set @ll_ascii = ascii(substring(@ls_item_no,@ll_len,1))
if not ((@ll_ascii >= 65 and @ll_ascii <= 90) or (@ll_ascii >= 97 and @ll_ascii <= 122) or (@ll_ascii >= 48 and @ll_ascii <= 57) or @ll_ascii = 95 )
begin
insert into #tab_item_no_rtn
select item_no from #tab_item_no where t_id = @ll_count
set @ll_len = 0
end
else
set @ll_len = @ll_len - 1
end
set @ll_count = @ll_count - 1
end
select *,'含特殊字符的货号' from #tab_item_no_rtn
drop table #tab_item_no
drop table #tab_item_no_rtn
--95 _
--65-90 A-Z
--97-122 a-z
--48-57 0-9
create table #tab_item_no(t_id decimal(18,0) identity(1,1),item_no varchar(40))
create table #tab_item_no_rtn(t_id decimal(18,0) identity(1,1),item_no varchar(40))
declare @ll_count decimal(18,0),@ll_len int,@ll_ascii int,@ls_item_no varchar(40)
insert into #tab_item_no
select item_no from t_bd_item_info with(nolock)
set @ll_count = 0
select @ll_count = count(*) from #tab_item_no
while @ll_count > 0
begin
set @ls_item_no = ''
select @ls_item_no = item_no from #tab_item_no where t_id = @ll_count
set @ll_len = 0
set @ll_len = LEN(@ls_item_no)
while @ll_len > 1
begin
set @ll_ascii = ascii(substring(@ls_item_no,@ll_len,1))
if not ((@ll_ascii >= 65 and @ll_ascii <= 90) or (@ll_ascii >= 97 and @ll_ascii <= 122) or (@ll_ascii >= 48 and @ll_ascii <= 57) or @ll_ascii = 95 )
begin
insert into #tab_item_no_rtn
select item_no from #tab_item_no where t_id = @ll_count
set @ll_len = 0
end
else
set @ll_len = @ll_len - 1
end
set @ll_count = @ll_count - 1
end
select *,'含特殊字符的货号' from #tab_item_no_rtn
drop table #tab_item_no
drop table #tab_item_no_rtn