--简单分段语句
declare @b varchar(20)
select @b='a-b-c-d-e'
--处理
declare @sql varchar(4000)
select @sql= 'select '''+replace(@b,'-',''' union all select ''') ''''
exec(@sql)
--实现 split 分段功能的函数
create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)[email protected])
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>'/'
insert @temp values(@SourceSql)
return
end
--用法:
select * from dbo.f_split('A:B:C:D:E',':')
--输出
a
1 A
2 B
3 C
4 D
5 E
--实现简单模糊查找的过程
create procedure splitter
@str varchar(1024)
as
declare @s varchar(1024)
declare @i int
set @s='select message from T_QQMsgLog where 1=1'
set @i=1