22,209
社区成员
发帖
与我相关
我的任务
分享
declare @keyword nVarChar(1000)
set @keyword='a#b'
declare @strReturn nVarChar(1000)
,@tempStr nVarChar(1000)
,@tempItem int
,@tempCount int
,@tempChar nvarchar(10)
,@tempAscNum int
set @strReturn=''
set @tempCount=len(@keyword)
set @tempItem=1
while @tempItem<=@tempCount
begin
set @tempChar=substring(@keyword,@tempItem,1)
print @tempChar
set @tempAscNum=AscII(@tempChar)
print '-'&AscII(@tempChar)
if (@tempAscNum>=48 And @tempAscNum<=57) Or (@tempAscNum>=65 And @tempAscNum<=90) Or (@tempAscNum>=97 And @tempAscNum<=122)
begin
set @tempStr=@tempStr+@tempChar
end
set @tempItem=@tempItem+1
end
print @tempStr
Create Function dbo.F_Get_FilterWord(
@Key Varchar(1000)
,@Type VarChar(4)
,@IgnoreCase VarChar(4)
)
Returns VarChar(1000)
As
Begin
Declare @Pattern VarChar(100)
,@PattChar VarChar(20)
,@PattNum VarChar(20)
,@PattZH VarChar(20)
Set @PattChar=
Case Upper(@IgnoreCase)
When '' Then 'a-zA-Z'
When 'L' Then 'a-z'
When 'U' Then 'A-Z'
End
Set @PattNum='0-9'
Set @PattZH='吖-咗'
Set @Pattern=
Case Upper(@Type)
When '' Then @PattChar+@PattNum+@PattZH
When 'C' Then @PattChar
When 'N' Then @PattNum
When 'Z' Then @PattZH
End
While Patindex('%[^'+@Pattern+']%',@Key)>0
Begin
Set @Key=Stuff(@Key,Patindex('%[^'+@Pattern+']%',@Key),1,'')
End
Return @Key
End
declare @keyword nVarChar(1000)
set @keyword='a#b'
declare @strReturn nVarChar(1000)
,@tempStr nVarChar(1000)
,@tempItem int
,@tempCount int
,@tempChar nvarchar(10)
,@tempAscNum int
set @strReturn=''
set @tempCount=len(@keyword)
set @tempItem=1
while @tempItem<=@tempCount
begin
set @tempChar=substring(@keyword,@tempItem,1)
print @tempChar
set @tempAscNum=AscII(@tempChar)
print '-'&AscII(@tempChar)
if (@tempAscNum>=48 And @tempAscNum<=57) Or (@tempAscNum>=65 And @tempAscNum<=90) Or (@tempAscNum>=97 And @tempAscNum<=122)
begin
set @tempStr=@tempStr+@tempChar
end
set @tempItem=@tempItem+1
end
print @tempStr
/*
a
0
#
0
b
0
*/
改一改
declare @keyword nVarChar(1000)
set @keyword='a#b'
declare @strReturn nVarChar(1000)
,@tempStr nVarChar(1000)
,@tempItem int
,@tempCount int
,@tempChar nvarchar(10)
,@tempAscNum int
set @strReturn=''
set @tempCount=len(@keyword)
set @tempItem=1
while @tempItem<=@tempCount
begin
set @tempChar=substring(@keyword,@tempItem,1)
print @tempChar
set @tempAscNum=AscII(@tempChar)
print '-'+AscII(@tempChar)
if (@tempAscNum>=48 And @tempAscNum<=57) Or (@tempAscNum>=65 And @tempAscNum<=90) Or (@tempAscNum>=97 And @tempAscNum<=122)
begin
set @tempStr=@tempStr+@tempChar
end
set @tempItem=@tempItem+1
end
print @tempStr
/*
a
97
#
35
b
98
*/