用函數處理字符串(提取/比較)
系統
1758 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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元