if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[getEPnum]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[getEPnum]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[getstrcount]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[getstrcount]
GO
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[getstrofindex]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[getstrofindex]
GO
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)SET QUOTED_IDENTIFIER ON
GO
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)SET ANSI_NULLS ON
GO
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)--- 这个函数直接调用了另外的两个函数,可以先阅读下面提到的两个函数
CREATE function getEPnum (@str varchar(8000))
returns varchar(8000)
as
begin
declare @str_return varchar(8000)
declare @i int
declare @temp_i int
declare @onlineornot int
declare @findepnumok int
-- 用来取得一个epnum,
-- 规则:首先从chatid中取,如果有在线得,则取得最前面得在线得返回
-- 如果全部不在线,则返回 ‘00000000’
select @findepnumok = 0
select @temp_i = 0
IF len(@str)=0
begin
SELECT @str_return = '00000000'
end
else
begin
select @i = dbo.getstrcount(@str,',')
select @location = charindex(@splitstr,@str,@start)
select @next = @next + 1
select @int_return = @next
end
return @int_return
end
GO
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)SET QUOTED_IDENTIFIER OFF
GO
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)SET ANSI_NULLS ON
GO
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)SET QUOTED_IDENTIFIER ON
GO
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)SET ANSI_NULLS ON
GO
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)-- getstrofindex 输入一个未分割的字符串,舒服分割符号,舒服要取得的字符位置
-- 返回 制定位置的字符串
CREATE function getstrofindex (@str varchar(8000),@splitstr varchar(4),@index int=0)
returns varchar(8000)
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)as
begin
declare @str_return varchar(8000)
declare @start int
declare @next int
declare @location int
select @start =1
select @next = 1 --如果习惯从0开始则select @next =0
select @location = charindex(@splitstr,@str,@start)
while (@location 0 and @index @next )
begin
select @start = @location +1
select @location = charindex(@splitstr,@str,@start)
select @next =@next +1
end
if @location =0 select @location =len(@str)+1 --如果是因为没有逗号退出,则认为逗号在字符串后
select @str_return = substring(@str,@start,@location -@start) --@start肯定是逗号之后的位置或者就是初始值1
if (@index @next ) select @str_return = '' --如果二者不相等,则是因为逗号太少,或者@index小于@next的初始值1。
return @str_return
end
GO
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)SET QUOTED_IDENTIFIER OFF
GO
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)SET ANSI_NULLS ON
GO
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)