--用指定的字元拆分乙個字串,並傳入乙個字串判斷傳入的這個字串是否存在於拆分以後的字串陣列中
create function splitstring(@expression varchar(500),@char varchar(10),@str varchar(50))
returns bit
as
begin
--如果傳進來的字串是null則返回0
if(isnull(@expression,' ')=' ')
return 0
declare @beginindex int,@endindex int --擷取子串的起始索引和結束索引
declare @count int --記錄迴圈的次數
set @beginindex=1--注意:sql中字串的索引是從1開始
set @count=0
while(1=1)
begin
set @count=@count+1
set @endindex=charindex(@char,@expression,@beginindex)
--如果沒有找到分隔符,則將整個要分割的串與需要判斷的串對比
if(@endindex=0)
begin
--如果是第一次擷取子串
if(@count=1)
begin
if(@expression=@str)
begin
return 1
end
begin
return 0
end
end
else --如果是最後一次擷取子串,則將最後乙個分隔符後面的字串取出來與需要判斷的串對比
begin
if(@str=substring(@expression,@beginindex,len(@expression)-@beginindex+1))
begin
return 1
end
else
begin
return 0
end
end
end
--如果匹配,則返回1
if(@str=substring(@expression,@beginindex,@endindex-@beginindex))
begin
return 1
end
else --如果不匹配則繼續尋找
begin
set @beginindex=@endindex+1
end
end
return 0
end
--用指定的字元拆分乙個字串,並傳入乙個索引,返回拆分後指定索引的字串(索引從1開始)
create function indexofarray(@expression varchar(500),@char varchar(10),@index int)
returns varchar(200)
asbegin
declare @beginindex int,@endindex int --擷取子串的起始索引和結束索引
declare @count int --記錄迴圈的次數
set @beginindex=1 --注意:sql中字串的索引是從1開始
set @count=0
while(1=1)
begin
set @count=@count+1
set @endindex=charindex(@char,@expression,@beginindex)
--如果沒有找到分隔符,則擷取最後乙個分隔符到字串末尾的子串
if(@endindex=0)
begin
return substring(@expression,@beginindex,len(@expression)-@beginindex+1)
end
--如果這一次擷取出來的字串的索引是指定索引,則返回擷取出來的字串
if(@count=@index)
begin
return substring(@expression,@beginindex,@endindex-@beginindex)
endelse --否則繼續
begin
set @beginindex=@endindex+1
continue
endend
return ''
endgo
--用指定的字元拆分乙個字串,並傳入乙個字串判斷傳入的這個字串
--是否與拆分以後的字串陣列中指定索引的字串相等
create function splitequare(@expression varchar(200),@char varchar(10),@index int,@str varchar(100))
returns bit
asbegin
declare @splitstr varchar(100)
set @splitstr=dbo.indexofarray(@expression,@char,@index)
if(@splitstr=@str)
begin
return 1
endelse
begin
return 0
endreturn 0
endgo
SQL 字串拆分
有這樣乙個字串 中,國,中,人民,國,現代工業化程序,國 處理過之後變成 中,國,人民,現代工業化程序 以下是我的方法,有什麼不對的地方還請各位指點 刪除重複的字元 declare v1 nvarchar 100 declare v2 nvarchar 100 declare v3 nvarchar...
sql拆分字串
拆分字元卡 create function s id varchar 20 編號串 varchar max returns tab table id varchar 20 編號 varchar 30 begin declare ipos int,bh varchar 20 while 1 0 beg...
SQL 拆分字串的經典方法
經典的拆分字串的語句 基礎資料 create table 1 c name nvarchar 30 c desc nvarchar 100 insert 1 select n 張三 n 周一,周二,週三 union select n 李四 n 周一,周四,週六 union select n 王五 n...