用函数处理字符串(提取/比较)
系统
1743 0
--
1、如果提取小写字母:
create
function
roy_Number(
@name
varchar
(
100
))
returns
varchar
(
100
)
as
begin
declare
@s
varchar
(
100
)
while
patindex
(
'
%[a-z]%
'
,
@name
collateChinese_PRC_BIN)
>
0
--
用二进制排序区分大小写
begin
set
@s
=
isnull
(
@s
,
''
)
+
substring
(
@name
,
patindex
(
'
%[a-z]%
'
,
@name
collateChinese_PRC_BIN),
1
)
set
@name
=
stuff
(
@name
,
1
,
patindex
(
'
%[a-z]%
'
,
@name
collateChinese_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行)
*/
--
dropfunctionroy_Number
go
--
2、找出第一个字符串没有在第二个字符串出现的字符
create
function
F_split(
@s1
nvarchar
(
50
),
@s2
nvarchar
(
50
),
@split
nvarchar
(
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
return
left
(
@s3
,
len
(
@s3
)
-
1
)
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.F_split(
@s1
,
@s2
,
'
,
'
)
as
第一个字符串没有在第二个字符串出现的字符
/**/
/*
第一个字符串没有在第二个字符串出现的字符
--------------------------------------------------
u,a,e,f
(所影响的行数为1行)
*/
--
dropfunctionF_split
用函数处理字符串(提取/比较)
更多文章、技术交流、商务合作、联系博主
微信扫码或搜索:z360901061
微信扫一扫加我为好友
QQ号联系: 360901061
您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。
【本文对您有帮助就好】元