用函数处理字符串(提取/比较)

时间:2023-01-07 16:23:43

 

用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)
-- 1、如果提取小写字母:
用函数处理字符串(提取/比较)

用函数处理字符串(提取/比较)
create   function  roy_Number( @name   varchar ( 100 ))
用函数处理字符串(提取/比较)
returns   varchar ( 100 )
用函数处理字符串(提取/比较)
as
用函数处理字符串(提取/比较)
begin
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)    
declare   @s   varchar ( 100 )
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)    
while   patindex ( ' %[a-z]% ' , @name  collate Chinese_PRC_BIN) > 0 -- 用二进制排序区分大小写
用函数处理字符串(提取/比较)

用函数处理字符串(提取/比较)        
begin
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)            
set   @s = isnull ( @s , '' ) + substring ( @name , patindex ( ' %[a-z]% ' , @name  collate Chinese_PRC_BIN), 1 )
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)            
set   @name = stuff ( @name , 1 , patindex ( ' %[a-z]% ' , @name  collate Chinese_PRC_BIN), '' )
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)        
end
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)    
return   @s
用函数处理字符串(提取/比较)
end
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)
go
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)
-- 测试:
用函数处理字符串(提取/比较)

用函数处理字符串(提取/比较)
declare   @s   varchar ( 100 )
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)
set   @s = ' CHINA,r~!@#$o%^&*(y,&.;)(*wu^x%i943中8国$@人 '
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)
select  dbo.roy_Number( @s as  显示小写字母
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)用函数处理字符串(提取/比较)
/*
用函数处理字符串(提取/比较)显示小写字母                                                                                               
用函数处理字符串(提取/比较)---------------------------------------------------------------------------------------------------- 
用函数处理字符串(提取/比较)roywuxi
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)(所影响的行数为 1 行)
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)
*/

用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)
-- drop function roy_Number
用函数处理字符串(提取/比较)

用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)                                           
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)
go
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)
-- 2、找出第一个字符串没有在第二个字符串出现的字符
用函数处理字符串(提取/比较)

create function fn_Split(

                    @s1nvarchar(50),

                    @s2nvarchar(50),

                    @splitnvarchar(50)--分隔符

)

returns nvarchar(50)

as

begin

   

    declare @s3 nvarchar(50),@lenSplit int

   

    select @s3='',@s1=@s1+@split,@s2=@split+@s2+@split,@lenSplit=len(@split+'a')-2

   

    while charindex(@split,@s1)>0

   

        begin

   

            if charindex(@split+left(@s1,charindex(@split,@s1)+@lenSplit),@s2)=0

   

                set@s3=@s3+left(@s1,charindex(@split,@s1)+@lenSplit)

   

            set@s1=stuff(@s1,1,charindex(@split,@s1)+@lenSplit,'')

        end

    IF @s3>''

       return left(@s3,len(@s3)-1)

    RETURN @s3

 

end

 

go

declare @s1 nvarchar(50),@s2 nvarchar(50)

 

select @s1='u,a,b,c,d,e,f',@s2='c,b,d,rr'

 

select dbo.fn_Split(@s2,@s1,',') as [第一个字符串没有在第二个字符串出现的字符]


用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)用函数处理字符串(提取/比较)
/*
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)第一个字符串没有在第二个字符串出现的字符                               
用函数处理字符串(提取/比较)-------------------------------------------------- 
用函数处理字符串(提取/比较)u,a,e,f
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)(所影响的行数为 1 行)
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)
*/

用函数处理字符串(提取/比较)
用函数处理字符串(提取/比较)
-- drop function fn_Split